Plugin Directory

Changeset 3266220


Ignore:
Timestamp:
04/03/2025 10:09:27 AM (12 months ago)
Author:
wpify
Message:

Update to version 5.0.5

Location:
wpify-woo
Files:
16 edited
1 copied

Legend:

Unmodified
Added
Removed
  • wpify-woo/tags/5.0.5/readme.txt

    r3264949 r3266220  
    55Tested up to: 6.8
    66Requires PHP: 8.1
    7 Stable tag: 5.0.4
     7Stable tag: 5.0.5
    88License: GPLv2 or later
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html
     
    219219
    220220== Changelog ==
     221= 5.0.5 =
     222* Fix Delivery date display by zones
     223* Add option to Opt-In Heureka
     224* Better shortcode [wpify_woo_render_qr_code] for display QR payment
     225
    221226= 5.0.4 =
    222227* Fix Delivery date location select
  • wpify-woo/tags/5.0.5/src/Modules/DeliveryDates/DeliveryDatesModule.php

    r3264949 r3266220  
    191191            ),
    192192            array(
    193                 'id'      => 'display_locations',
    194                 'type'    => 'multi_select',
    195                 'label'   => __( 'Display locations', 'wpify-woo' ),
    196                 'options' => function () use ( $locations ) {
     193                'id'           => 'display_locations',
     194                'type'         => 'multi_select',
     195                'label'        => __( 'Display locations', 'wpify-woo' ),
     196                'options'      => function () use ( $locations ) {
    197197                    return array_map( function ( $item ) {
    198198                        return [
     
    345345
    346346    /**
     347     * Get zone ID for a given country code.
     348     *
     349     * Supports zone locations by country, continent, or world.
     350     *
     351     * @param string $country_code Two-letter ISO country code (e.g. 'CZ')
     352     * @param array  $zones        All shipping zones with locations
     353     *
     354     * @return int|null
     355     */
     356    public function get_zone_id_for_country( string $country_code, array $zones ): ?int {
     357        // First, get full info about country (from WC)
     358        $wc_countries     = new \WC_Countries();
     359        $continent_code    = $wc_countries->get_continent_code_for_country( $country_code );
     360
     361        foreach ( $zones as $zone ) {
     362            if ( ! isset( $zone['zone_locations'] ) || ! is_array( $zone['zone_locations'] ) ) {
     363                continue;
     364            }
     365
     366            foreach ( $zone['zone_locations'] as $location ) {
     367                // Match by exact country
     368                if ( $location->type === 'country' && $location->code === $country_code ) {
     369                    return $zone['id'];
     370                }
     371
     372                // Match by continent
     373                if ( $location->type === 'continent' && $location->code === $continent_code ) {
     374                    return $zone['id'];
     375                }
     376
     377                // Match "worldwide"
     378                if ( $location->type === 'world' ) {
     379                    return $zone['id'];
     380                }
     381            }
     382        }
     383
     384        return null;
     385    }
     386
     387    /**
    347388     * Get formatted date or date name
    348389     *
     
    391432     * @throws \Exception
    392433     */
    393     public function display_delivery_methods( $methods_ids, $shipping_countries, $shipping_zones, $actual_country ) {
     434    public function display_delivery_methods( $methods_ids, $shipping_zones, $actual_zone_id ) {
    394435        // Get array of allowed countries names
    395436        $zone_countries = [];
     
    413454
    414455            // Get selected country
    415             $selected = in_array( $shipping_countries[ $actual_country ], $zone_countries ) ? array_search( $shipping_countries[ $actual_country ], $zone_countries ) : '0';
     456            $selected = $actual_zone_id;
    416457            $show     = $selected == $zone['id'];
    417458
     
    512553     * @param string $actual_country     code of actual country
    513554     */
    514     public function display_country_select( $shipping_countries, $shipping_zones, $zone_countries, $actual_country ) {
     555    public function display_country_select( $shipping_countries, $shipping_zones, $actual_zone_id ) {
    515556        /**
    516557         * Filter to disable country selector
     
    549590                    }
    550591
    551                     $selected     = in_array( $shipping_countries[ $actual_country ], $zone_countries ) ? array_search( $shipping_countries[ $actual_country ], $zone_countries ) : '0';
     592                    $selected = $actual_zone_id === $zone['id'];
    552593                    $country_code = array_search( $zone['formatted_zone_location'], $shipping_countries );
    553                     echo '<option value="zone-' . esc_attr( $zone['id'] ) . '" data-country="' . esc_attr( $country_code ) . '" ' . selected( $selected, $zone['id'], false ) . '>' . esc_html( $zone['formatted_zone_location'] ) . '</option>';
     594                    echo '<option value="zone-' . esc_attr( $zone['id'] ) . '" data-country="' . esc_attr( $country_code ) . '" ' . selected( $selected, true, false ) . '>' . esc_html( $zone['formatted_zone_location'] ) . '</option>';
    554595                }
    555596                ?>
     
    575616        $actual_country     = ! empty( WC()->customer ) && WC()->customer->get_shipping_country() ? WC()->customer->get_shipping_country() : WC()->countries->get_base_country();
    576617        $shipping_zones     = $this->get_all_zones();
    577         $zone_countries     = [];
    578 
    579         // Get array of allowed and enabled countries names and unset zones without enabled methods
    580         foreach ( $shipping_zones as $key => $zone ) {
    581             $enabled_count = 0;
    582             if ( isset( $zone['shipping_methods'] ) ) {
    583                 foreach ( $zone['shipping_methods'] as $method ) {
    584                     if ( $method->enabled !== 'yes' ) {
    585                         continue;
    586                     }
    587 
    588                     $enabled_count += 1;
    589                 }
    590             }
    591 
    592             if ( $enabled_count < 1 ) {
    593                 unset( $shipping_zones[ $key ] );
    594                 continue;
    595             }
    596 
    597             $zone_countries[ $key ] = $zone['formatted_zone_location'];
    598         }
    599 
    600         // Set first country from zones as actual country if default country isn't exist or not in zones
    601         if ( ! isset( $shipping_countries[ $actual_country ] ) || ! in_array( $shipping_countries[ $actual_country ], $zone_countries ) ) {
    602             $actual_country = array_search( reset( $zone_countries ), $shipping_countries );
    603         }
    604 
     618        $actual_zone_id     = $this->get_zone_id_for_country( $actual_country, $shipping_zones );
     619
     620        if ( ! $actual_zone_id ) {
     621            $actual_zone_id = array_key_first( $shipping_zones );
     622        }
    605623        ?>
    606624        <div class="wpify-woo-delivery-date">
     
    611629            }
    612630
    613             $this->display_country_select( $shipping_countries, $shipping_zones, $zone_countries, $actual_country );
     631            $this->display_country_select( $shipping_countries, $shipping_zones, $actual_zone_id );
    614632
    615633            $custom_dates = $product->get_meta( '_wpify_woo_delivery_dates' );
     
    700718
    701719                // get selected zone
    702                 $selected = isset( $shipping_countries[ $actual_country ] ) && in_array( $shipping_countries[ $actual_country ], $zone_countries ) ? array_search( $shipping_countries[ $actual_country ], $zone_countries ) : '0';
    703 
     720                $selected = $actual_zone_id;
    704721                ?>
    705722                <div class="wpify-woo-delivery-date__line"
     
    718735                            <?php
    719736                            if ( $data['shipping_methods'] ) {
    720                                 $this->display_delivery_methods( $data['shipping_methods'], $shipping_countries, $shipping_zones, $actual_country );
     737                                $this->display_delivery_methods( $data['shipping_methods'], $shipping_zones, $actual_zone_id );
    721738                            } ?>
    722739                        </div>
  • wpify-woo/tags/5.0.5/src/Modules/HeurekaOverenoZakazniky/HeurekaOverenoZakaznikyModule.php

    r3262843 r3266220  
    9696            ),
    9797            array(
     98                'id'    => 'optin_mode',
     99                'type'  => 'toggle',
     100                'label' => __( 'Use Opt-In instead of Opt-Out', 'wpify-woo' ),
     101                'title' => __( 'Switch the logic to require explicit customer consent (opt-in)', 'wpify-woo' ),
     102            ),
     103            array(
    98104                'id'    => 'widget_enabled',
    99105                'type'  => 'toggle',
     
    153159        }
    154160
    155         // If customer don't agree with questionnaire
    156         if ( isset( $_POST['wpify_woo_heureka_optout'] ) && ! empty( $_POST['wpify_woo_heureka_optout'] ) ) {
     161        $use_optin = $this->get_setting( 'optin_mode' );
     162
     163        // In OPT-IN mode: if checkbox is not checked → do not send
     164        if ( $use_optin && empty( $_POST['wpify_woo_heureka_optout'] ) ) {
     165            $order->add_order_note( sprintf( __( 'Heureka: Agree with the satisfaction questionnaire: %s', 'wpify-woo' ), __( 'No', 'wpify-woo' ) ) );
     166            $order->update_meta_data( '_wpify_woo_heureka_optout_agreement', 'no' );
     167            $order->save();
     168
     169            return false;
     170        }
     171
     172        // In OPT-OUT mode: if checkbox is checked → do not send
     173        if ( ! $use_optin && ! empty( $_POST['wpify_woo_heureka_optout'] ) ) {
    157174            $order->add_order_note( sprintf( __( 'Heureka: Agree with the satisfaction questionnaire: %s', 'wpify-woo' ), __( 'No', 'wpify-woo' ) ) );
    158175            $order->update_meta_data( '_wpify_woo_heureka_optout_agreement', 'no' );
  • wpify-woo/tags/5.0.5/src/Modules/QRPayment/QRPaymentModule.php

    r3257809 r3266220  
    9090                'label'   => __( 'Enabled payment methods', 'wpify-woo' ),
    9191                'buttons' => array(
    92                     'add'    => __( 'Add payment method', 'wpify-woo' ),
     92                    'add' => __( 'Add payment method', 'wpify-woo' ),
    9393                ),
    9494                'items'   => [
     
    126126                        'label'   => __( 'Accounts', 'wpify-woo' ),
    127127                        'buttons' => array(
    128                             'add'    => __( 'Add account', 'wpify-woo' ),
     128                            'add' => __( 'Add account', 'wpify-woo' ),
    129129                        ),
    130130                        'items'   => [
     
    580580
    581581    /**
    582      * Render the [wpify_woo_render_qr_code] shortcode.
     582     * Render the [wpify_woo_render_qr_code] or [wpify_woo_render_qr_code order_id="123"] shortcode.
    583583     *
    584584     * @return string
    585      */
    586     public function display_qr_code_shortcode() {
    587         if ( ! isset( $_GET['key'] ) ) {
    588             return;
    589         }
    590 
    591         $order_id = wc_get_order_id_by_order_key( $_GET['key'] );
     585     * @throws Exception
     586     */
     587    public function display_qr_code_shortcode( $atts = [] ) {
     588        $atts = shortcode_atts( [
     589            'order_id' => null,
     590        ], $atts );
     591
     592        $order_id = null;
     593
     594        // 1. If order_id is in the shortcode
     595        if ( ! empty( $atts['order_id'] ) ) {
     596            $order_id = absint( $atts['order_id'] );
     597
     598            // 2. If there is a key in the URL
     599        } elseif ( isset( $_GET['key'] ) ) {
     600            $order_id = wc_get_order_id_by_order_key( sanitize_text_field( $_GET['key'] ) );
     601
     602            // 3. If we run in an email context
     603        } elseif ( did_action( 'woocommerce_email_header' ) ) {
     604            global $email;
     605            if ( isset( $email ) && is_object( $email ) && method_exists( $email, 'get_order' ) ) {
     606                $order = $email->get_order();
     607                if ( $order instanceof WC_Order ) {
     608                    $order_id = $order->get_id();
     609                }
     610            }
     611
     612            // 4. If global $order is available
     613        } elseif ( isset( $GLOBALS['order'] ) && $GLOBALS['order'] instanceof WC_Order ) {
     614            $order_id = $GLOBALS['order']->get_id();
     615
     616            // 5. If the current order page is in "My Account"
     617        } elseif ( function_exists( 'get_query_var' ) ) {
     618            $order_id = absint( get_query_var( 'order-pay' ) ); // thankyou/order-pay
     619            if ( ! $order_id ) {
     620                $order_id = absint( get_query_var( 'view-order' ) ); // my-account/view-order
     621            }
     622        }
     623
     624        if ( empty( $order_id ) ) {
     625            return '';
     626        }
    592627
    593628        ob_start();
  • wpify-woo/tags/5.0.5/src/Plugin.php

    r3264949 r3266220  
    2222
    2323    /** Plugin version */
    24     public const VERSION = '5.0.4';
     24    public const VERSION = '5.0.5';
    2525
    2626    /** Plugin slug name */
  • wpify-woo/tags/5.0.5/vendor/composer/installed.php

    r3264949 r3266220  
    22    'root' => array(
    33        'name' => 'wpify/woo',
    4         'pretty_version' => '5.0.4',
    5         'version' => '5.0.4.0',
    6         'reference' => '8e0c69003a351d48fff115735966db24d8d4160f',
     4        'pretty_version' => '5.0.5',
     5        'version' => '5.0.5.0',
     6        'reference' => '5971ba92f46640ed90893d670e03e3b1df72231a',
    77        'type' => 'project',
    88        'install_path' => __DIR__ . '/../../',
     
    1212    'versions' => array(
    1313        'wpify/woo' => array(
    14             'pretty_version' => '5.0.4',
    15             'version' => '5.0.4.0',
    16             'reference' => '8e0c69003a351d48fff115735966db24d8d4160f',
     14            'pretty_version' => '5.0.5',
     15            'version' => '5.0.5.0',
     16            'reference' => '5971ba92f46640ed90893d670e03e3b1df72231a',
    1717            'type' => 'project',
    1818            'install_path' => __DIR__ . '/../../',
  • wpify-woo/tags/5.0.5/vendor/wpify-woo/composer/installed.php

    r3264949 r3266220  
    33namespace WpifyWooDeps;
    44
    5 return array('root' => array('name' => '__root__', 'pretty_version' => '5.0.4', 'version' => '5.0.4.0', 'reference' => '8e0c69003a351d48fff115735966db24d8d4160f', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \true), 'versions' => array('__root__' => array('pretty_version' => '5.0.4', 'version' => '5.0.4.0', 'reference' => '8e0c69003a351d48fff115735966db24d8d4160f', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'bacon/bacon-qr-code' => array('pretty_version' => '2.0.8', 'version' => '2.0.8.0', 'reference' => '8674e51bb65af933a5ffaf1c308a660387c35c22', 'type' => 'library', 'install_path' => __DIR__ . '/../bacon/bacon-qr-code', 'aliases' => array(), 'dev_requirement' => \false), 'dasprid/enum' => array('pretty_version' => '1.0.6', 'version' => '1.0.6.0', 'reference' => '8dfd07c6d2cf31c8da90c53b83c026c7696dda90', 'type' => 'library', 'install_path' => __DIR__ . '/../dasprid/enum', 'aliases' => array(), 'dev_requirement' => \false), 'dragonbe/vies' => array('pretty_version' => '2.3.2', 'version' => '2.3.2.0', 'reference' => 'd9193cbaba7e2faefbdc228fb1bf5670f20acf30', 'type' => 'tool', 'install_path' => __DIR__ . '/../dragonbe/vies', 'aliases' => array(), 'dev_requirement' => \false), 'endroid/qr-code' => array('pretty_version' => '4.5.0', 'version' => '4.5.0.0', 'reference' => '36681470bd10352b53bcb9731bdf2270e0d79b22', 'type' => 'library', 'install_path' => __DIR__ . '/../endroid/qr-code', 'aliases' => array(), 'dev_requirement' => \false), 'guzzlehttp/guzzle' => array('pretty_version' => '7.9.3', 'version' => '7.9.3.0', 'reference' => '7b2f29fe81dc4da0ca0ea7d42107a0845946ea77', 'type' => 'library', 'install_path' => __DIR__ . '/../guzzlehttp/guzzle', 'aliases' => array(), 'dev_requirement' => \false), 'guzzlehttp/promises' => array('pretty_version' => '2.2.0', 'version' => '2.2.0.0', 'reference' => '7c69f28996b0a6920945dd20b3857e499d9ca96c', 'type' => 'library', 'install_path' => __DIR__ . '/../guzzlehttp/promises', 'aliases' => array(), 'dev_requirement' => \false), 'guzzlehttp/psr7' => array('pretty_version' => '2.7.1', 'version' => '2.7.1.0', 'reference' => 'c2270caaabe631b3b44c85f99e5a04bbb8060d16', 'type' => 'library', 'install_path' => __DIR__ . '/../guzzlehttp/psr7', 'aliases' => array(), 'dev_requirement' => \false), 'h4kuna/ares' => array('pretty_version' => 'v3.0.10', 'version' => '3.0.10.0', 'reference' => 'f3dd2531dd32731366bd8dc1055e55ddc90c460e', 'type' => 'library', 'install_path' => __DIR__ . '/../h4kuna/ares', 'aliases' => array(), 'dev_requirement' => \false), 'heureka/inflection' => array('pretty_version' => 'v3.0.4', 'version' => '3.0.4.0', 'reference' => '684ca578eee3ede920d5d3ca8d568fb70e7d9076', 'type' => 'library', 'install_path' => __DIR__ . '/../heureka/inflection', 'aliases' => array(), 'dev_requirement' => \false), 'heureka/overeno-zakazniky' => array('pretty_version' => '3.0.3', 'version' => '3.0.3.0', 'reference' => 'aa52add431bac32c67b1c00b1969a98709cd611b', 'type' => 'library', 'install_path' => __DIR__ . '/../heureka/overeno-zakazniky', 'aliases' => array(), 'dev_requirement' => \false), 'laravel/serializable-closure' => array('pretty_version' => 'v1.3.7', 'version' => '1.3.7.0', 'reference' => '4f48ade902b94323ca3be7646db16209ec76be3d', 'type' => 'library', 'install_path' => __DIR__ . '/../laravel/serializable-closure', 'aliases' => array(), 'dev_requirement' => \false), 'monolog/monolog' => array('pretty_version' => '2.10.0', 'version' => '2.10.0.0', 'reference' => '5cf826f2991858b54d5c3809bee745560a1042a7', 'type' => 'library', 'install_path' => __DIR__ . '/../monolog/monolog', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.0.6', 'version' => '4.0.6.0', 'reference' => 'ce708655043c7050eb050df361c5e313cf708309', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'php-di/invoker' => array('pretty_version' => '2.3.6', 'version' => '2.3.6.0', 'reference' => '59f15608528d8a8838d69b422a919fd6b16aa576', 'type' => 'library', 'install_path' => __DIR__ . '/../php-di/invoker', 'aliases' => array(), 'dev_requirement' => \false), 'php-di/php-di' => array('pretty_version' => '6.4.0', 'version' => '6.4.0.0', 'reference' => 'ae0f1b3b03d8b29dff81747063cbfd6276246cc4', 'type' => 'library', 'install_path' => __DIR__ . '/../php-di/php-di', 'aliases' => array(), 'dev_requirement' => \false), 'php-di/phpdoc-reader' => array('pretty_version' => '2.2.1', 'version' => '2.2.1.0', 'reference' => '66daff34cbd2627740ffec9469ffbac9f8c8185c', 'type' => 'library', 'install_path' => __DIR__ . '/../php-di/phpdoc-reader', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container' => array('pretty_version' => '1.1.2', 'version' => '1.1.2.0', 'reference' => '513e0666f7216c7459170d56df27dfcefe1689ea', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/container', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '^1.0')), 'psr/http-client' => array('pretty_version' => '1.0.3', 'version' => '1.0.3.0', 'reference' => 'bb5906edc1c324c9a05aa0873d40117941e5fa90', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-client', 'aliases' => array(), 'dev_requirement' => \false), 'psr/http-client-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0')), 'psr/http-factory' => array('pretty_version' => '1.1.0', 'version' => '1.1.0.0', 'reference' => '2b4765fddfe3b508ac62f829e852b1501d3f6e8a', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-factory', 'aliases' => array(), 'dev_requirement' => \false), 'psr/http-factory-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0')), 'psr/http-message' => array('pretty_version' => '2.0', 'version' => '2.0.0.0', 'reference' => '402d35bcb92c70c026d1a6a9883f06b2ead23d71', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-message', 'aliases' => array(), 'dev_requirement' => \false), 'psr/http-message-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0')), 'psr/log' => array('pretty_version' => '1.1.4', 'version' => '1.1.4.0', 'reference' => 'd49695b909c3b7628b6289db5479a1c204601f11', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/log', 'aliases' => array(), 'dev_requirement' => \false), 'psr/log-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0.0 || 2.0.0 || 3.0.0')), 'ralouphie/getallheaders' => array('pretty_version' => '3.0.3', 'version' => '3.0.3.0', 'reference' => '120b605dfeb996808c31b6477290a714d356e822', 'type' => 'library', 'install_path' => __DIR__ . '/../ralouphie/getallheaders', 'aliases' => array(), 'dev_requirement' => \false), 'rikudou/czqrpayment' => array('pretty_version' => 'v5.3.1', 'version' => '5.3.1.0', 'reference' => 'f8e0ecbbdb6d30bafb50a833cc7cfe4f575b82a4', 'type' => 'library', 'install_path' => __DIR__ . '/../rikudou/czqrpayment', 'aliases' => array(), 'dev_requirement' => \false), 'rikudou/iban' => array('pretty_version' => 'v1.3.0', 'version' => '1.3.0.0', 'reference' => '7fe69bf9274792c37d5a8d9d38ef5cb000f8377a', 'type' => 'library', 'install_path' => __DIR__ . '/../rikudou/iban', 'aliases' => array(), 'dev_requirement' => \false), 'rikudou/qr-payment-interface' => array('pretty_version' => 'v1.1.0', 'version' => '1.1.0.0', 'reference' => '752f7a6bf1190c7d65ead90b5989f61927436c89', 'type' => 'library', 'install_path' => __DIR__ . '/../rikudou/qr-payment-interface', 'aliases' => array(), 'dev_requirement' => \false), 'rikudou/qr-payment-qr-code-provider' => array('pretty_version' => 'v1.2.0', 'version' => '1.2.0.0', 'reference' => 'd233c4bedeecf2ff7cd7e7d4ec7f4ad4a5eb4b64', 'type' => 'library', 'install_path' => __DIR__ . '/../rikudou/qr-payment-qr-code-provider', 'aliases' => array(), 'dev_requirement' => \false), 'rikudou/skqrpayment' => array('pretty_version' => 'v4.2.2', 'version' => '4.2.2.0', 'reference' => '777fa98caaff3f10fb43f3cf67a8464c547e0550', 'type' => 'library', 'install_path' => __DIR__ . '/../rikudou/skqrpayment', 'aliases' => array(), 'dev_requirement' => \false), 'spatie/array-to-xml' => array('pretty_version' => '2.17.1', 'version' => '2.17.1.0', 'reference' => '5cbec9c6ab17e320c58a259f0cebe88bde4a7c46', 'type' => 'library', 'install_path' => __DIR__ . '/../spatie/array-to-xml', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.5.1', 'version' => '3.5.1.0', 'reference' => '74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'woocommerce/action-scheduler' => array('pretty_version' => '3.9.2', 'version' => '3.9.2.0', 'reference' => 'efbb7953f72a433086335b249292f280dd43ddfe', 'type' => 'wordpress-plugin', 'install_path' => __DIR__ . '/../woocommerce/action-scheduler', 'aliases' => array(), 'dev_requirement' => \false), 'wpify/asset' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'faf957af650b441b49f03cb7ffa42abfe157b43b', 'type' => 'library', 'install_path' => __DIR__ . '/../wpify/asset', 'aliases' => array(), 'dev_requirement' => \false), 'wpify/custom-fields' => array('pretty_version' => '4.0.44', 'version' => '4.0.44.0', 'reference' => '07090e9d39117db3126618f24b7b5c96f274d6e4', 'type' => 'library', 'install_path' => __DIR__ . '/../wpify/custom-fields', 'aliases' => array(), 'dev_requirement' => \false), 'wpify/license' => array('pretty_version' => '2.0.5', 'version' => '2.0.5.0', 'reference' => '9d075a60f71a8fe6a86a8a02ed2551d2cbf392d5', 'type' => 'library', 'install_path' => __DIR__ . '/../wpify/license', 'aliases' => array(), 'dev_requirement' => \false), 'wpify/log' => array('pretty_version' => '1.0.10', 'version' => '1.0.10.0', 'reference' => '43bb35f12babe33b0343bb3d3f85239248c48701', 'type' => 'library', 'install_path' => __DIR__ . '/../wpify/log', 'aliases' => array(), 'dev_requirement' => \false), 'wpify/model' => array('pretty_version' => '4.1.22', 'version' => '4.1.22.0', 'reference' => 'f5c71ddb24d00496281664cdc3cac804b3394eb8', 'type' => 'library', 'install_path' => __DIR__ . '/../wpify/model', 'aliases' => array(), 'dev_requirement' => \false), 'wpify/plugin-utils' => array('pretty_version' => '1.0.1', 'version' => '1.0.1.0', 'reference' => '0ace7f3a23bdfe3e2b2b05c72af79fa034c7e77a', 'type' => 'library', 'install_path' => __DIR__ . '/../wpify/plugin-utils', 'aliases' => array(), 'dev_requirement' => \false), 'wpify/woo-core' => array('pretty_version' => '5.0.10', 'version' => '5.0.10.0', 'reference' => 'a2e369d22a3442863d0a3ccf3e87eb907bd73b47', 'type' => 'library', 'install_path' => __DIR__ . '/../wpify/woo-core', 'aliases' => array(), 'dev_requirement' => \false)));
     5return array('root' => array('name' => '__root__', 'pretty_version' => '5.0.5', 'version' => '5.0.5.0', 'reference' => '5971ba92f46640ed90893d670e03e3b1df72231a', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \true), 'versions' => array('__root__' => array('pretty_version' => '5.0.5', 'version' => '5.0.5.0', 'reference' => '5971ba92f46640ed90893d670e03e3b1df72231a', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'bacon/bacon-qr-code' => array('pretty_version' => '2.0.8', 'version' => '2.0.8.0', 'reference' => '8674e51bb65af933a5ffaf1c308a660387c35c22', 'type' => 'library', 'install_path' => __DIR__ . '/../bacon/bacon-qr-code', 'aliases' => array(), 'dev_requirement' => \false), 'dasprid/enum' => array('pretty_version' => '1.0.6', 'version' => '1.0.6.0', 'reference' => '8dfd07c6d2cf31c8da90c53b83c026c7696dda90', 'type' => 'library', 'install_path' => __DIR__ . '/../dasprid/enum', 'aliases' => array(), 'dev_requirement' => \false), 'dragonbe/vies' => array('pretty_version' => '2.3.2', 'version' => '2.3.2.0', 'reference' => 'd9193cbaba7e2faefbdc228fb1bf5670f20acf30', 'type' => 'tool', 'install_path' => __DIR__ . '/../dragonbe/vies', 'aliases' => array(), 'dev_requirement' => \false), 'endroid/qr-code' => array('pretty_version' => '4.5.0', 'version' => '4.5.0.0', 'reference' => '36681470bd10352b53bcb9731bdf2270e0d79b22', 'type' => 'library', 'install_path' => __DIR__ . '/../endroid/qr-code', 'aliases' => array(), 'dev_requirement' => \false), 'guzzlehttp/guzzle' => array('pretty_version' => '7.9.3', 'version' => '7.9.3.0', 'reference' => '7b2f29fe81dc4da0ca0ea7d42107a0845946ea77', 'type' => 'library', 'install_path' => __DIR__ . '/../guzzlehttp/guzzle', 'aliases' => array(), 'dev_requirement' => \false), 'guzzlehttp/promises' => array('pretty_version' => '2.2.0', 'version' => '2.2.0.0', 'reference' => '7c69f28996b0a6920945dd20b3857e499d9ca96c', 'type' => 'library', 'install_path' => __DIR__ . '/../guzzlehttp/promises', 'aliases' => array(), 'dev_requirement' => \false), 'guzzlehttp/psr7' => array('pretty_version' => '2.7.1', 'version' => '2.7.1.0', 'reference' => 'c2270caaabe631b3b44c85f99e5a04bbb8060d16', 'type' => 'library', 'install_path' => __DIR__ . '/../guzzlehttp/psr7', 'aliases' => array(), 'dev_requirement' => \false), 'h4kuna/ares' => array('pretty_version' => 'v3.0.10', 'version' => '3.0.10.0', 'reference' => 'f3dd2531dd32731366bd8dc1055e55ddc90c460e', 'type' => 'library', 'install_path' => __DIR__ . '/../h4kuna/ares', 'aliases' => array(), 'dev_requirement' => \false), 'heureka/inflection' => array('pretty_version' => 'v3.0.4', 'version' => '3.0.4.0', 'reference' => '684ca578eee3ede920d5d3ca8d568fb70e7d9076', 'type' => 'library', 'install_path' => __DIR__ . '/../heureka/inflection', 'aliases' => array(), 'dev_requirement' => \false), 'heureka/overeno-zakazniky' => array('pretty_version' => '3.0.3', 'version' => '3.0.3.0', 'reference' => 'aa52add431bac32c67b1c00b1969a98709cd611b', 'type' => 'library', 'install_path' => __DIR__ . '/../heureka/overeno-zakazniky', 'aliases' => array(), 'dev_requirement' => \false), 'laravel/serializable-closure' => array('pretty_version' => 'v1.3.7', 'version' => '1.3.7.0', 'reference' => '4f48ade902b94323ca3be7646db16209ec76be3d', 'type' => 'library', 'install_path' => __DIR__ . '/../laravel/serializable-closure', 'aliases' => array(), 'dev_requirement' => \false), 'monolog/monolog' => array('pretty_version' => '2.10.0', 'version' => '2.10.0.0', 'reference' => '5cf826f2991858b54d5c3809bee745560a1042a7', 'type' => 'library', 'install_path' => __DIR__ . '/../monolog/monolog', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.0.6', 'version' => '4.0.6.0', 'reference' => 'ce708655043c7050eb050df361c5e313cf708309', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'php-di/invoker' => array('pretty_version' => '2.3.6', 'version' => '2.3.6.0', 'reference' => '59f15608528d8a8838d69b422a919fd6b16aa576', 'type' => 'library', 'install_path' => __DIR__ . '/../php-di/invoker', 'aliases' => array(), 'dev_requirement' => \false), 'php-di/php-di' => array('pretty_version' => '6.4.0', 'version' => '6.4.0.0', 'reference' => 'ae0f1b3b03d8b29dff81747063cbfd6276246cc4', 'type' => 'library', 'install_path' => __DIR__ . '/../php-di/php-di', 'aliases' => array(), 'dev_requirement' => \false), 'php-di/phpdoc-reader' => array('pretty_version' => '2.2.1', 'version' => '2.2.1.0', 'reference' => '66daff34cbd2627740ffec9469ffbac9f8c8185c', 'type' => 'library', 'install_path' => __DIR__ . '/../php-di/phpdoc-reader', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container' => array('pretty_version' => '1.1.2', 'version' => '1.1.2.0', 'reference' => '513e0666f7216c7459170d56df27dfcefe1689ea', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/container', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '^1.0')), 'psr/http-client' => array('pretty_version' => '1.0.3', 'version' => '1.0.3.0', 'reference' => 'bb5906edc1c324c9a05aa0873d40117941e5fa90', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-client', 'aliases' => array(), 'dev_requirement' => \false), 'psr/http-client-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0')), 'psr/http-factory' => array('pretty_version' => '1.1.0', 'version' => '1.1.0.0', 'reference' => '2b4765fddfe3b508ac62f829e852b1501d3f6e8a', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-factory', 'aliases' => array(), 'dev_requirement' => \false), 'psr/http-factory-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0')), 'psr/http-message' => array('pretty_version' => '2.0', 'version' => '2.0.0.0', 'reference' => '402d35bcb92c70c026d1a6a9883f06b2ead23d71', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-message', 'aliases' => array(), 'dev_requirement' => \false), 'psr/http-message-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0')), 'psr/log' => array('pretty_version' => '1.1.4', 'version' => '1.1.4.0', 'reference' => 'd49695b909c3b7628b6289db5479a1c204601f11', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/log', 'aliases' => array(), 'dev_requirement' => \false), 'psr/log-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0.0 || 2.0.0 || 3.0.0')), 'ralouphie/getallheaders' => array('pretty_version' => '3.0.3', 'version' => '3.0.3.0', 'reference' => '120b605dfeb996808c31b6477290a714d356e822', 'type' => 'library', 'install_path' => __DIR__ . '/../ralouphie/getallheaders', 'aliases' => array(), 'dev_requirement' => \false), 'rikudou/czqrpayment' => array('pretty_version' => 'v5.3.1', 'version' => '5.3.1.0', 'reference' => 'f8e0ecbbdb6d30bafb50a833cc7cfe4f575b82a4', 'type' => 'library', 'install_path' => __DIR__ . '/../rikudou/czqrpayment', 'aliases' => array(), 'dev_requirement' => \false), 'rikudou/iban' => array('pretty_version' => 'v1.3.0', 'version' => '1.3.0.0', 'reference' => '7fe69bf9274792c37d5a8d9d38ef5cb000f8377a', 'type' => 'library', 'install_path' => __DIR__ . '/../rikudou/iban', 'aliases' => array(), 'dev_requirement' => \false), 'rikudou/qr-payment-interface' => array('pretty_version' => 'v1.1.0', 'version' => '1.1.0.0', 'reference' => '752f7a6bf1190c7d65ead90b5989f61927436c89', 'type' => 'library', 'install_path' => __DIR__ . '/../rikudou/qr-payment-interface', 'aliases' => array(), 'dev_requirement' => \false), 'rikudou/qr-payment-qr-code-provider' => array('pretty_version' => 'v1.2.0', 'version' => '1.2.0.0', 'reference' => 'd233c4bedeecf2ff7cd7e7d4ec7f4ad4a5eb4b64', 'type' => 'library', 'install_path' => __DIR__ . '/../rikudou/qr-payment-qr-code-provider', 'aliases' => array(), 'dev_requirement' => \false), 'rikudou/skqrpayment' => array('pretty_version' => 'v4.2.2', 'version' => '4.2.2.0', 'reference' => '777fa98caaff3f10fb43f3cf67a8464c547e0550', 'type' => 'library', 'install_path' => __DIR__ . '/../rikudou/skqrpayment', 'aliases' => array(), 'dev_requirement' => \false), 'spatie/array-to-xml' => array('pretty_version' => '2.17.1', 'version' => '2.17.1.0', 'reference' => '5cbec9c6ab17e320c58a259f0cebe88bde4a7c46', 'type' => 'library', 'install_path' => __DIR__ . '/../spatie/array-to-xml', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.5.1', 'version' => '3.5.1.0', 'reference' => '74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'woocommerce/action-scheduler' => array('pretty_version' => '3.9.2', 'version' => '3.9.2.0', 'reference' => 'efbb7953f72a433086335b249292f280dd43ddfe', 'type' => 'wordpress-plugin', 'install_path' => __DIR__ . '/../woocommerce/action-scheduler', 'aliases' => array(), 'dev_requirement' => \false), 'wpify/asset' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'faf957af650b441b49f03cb7ffa42abfe157b43b', 'type' => 'library', 'install_path' => __DIR__ . '/../wpify/asset', 'aliases' => array(), 'dev_requirement' => \false), 'wpify/custom-fields' => array('pretty_version' => '4.0.44', 'version' => '4.0.44.0', 'reference' => '07090e9d39117db3126618f24b7b5c96f274d6e4', 'type' => 'library', 'install_path' => __DIR__ . '/../wpify/custom-fields', 'aliases' => array(), 'dev_requirement' => \false), 'wpify/license' => array('pretty_version' => '2.0.5', 'version' => '2.0.5.0', 'reference' => '9d075a60f71a8fe6a86a8a02ed2551d2cbf392d5', 'type' => 'library', 'install_path' => __DIR__ . '/../wpify/license', 'aliases' => array(), 'dev_requirement' => \false), 'wpify/log' => array('pretty_version' => '1.0.10', 'version' => '1.0.10.0', 'reference' => '43bb35f12babe33b0343bb3d3f85239248c48701', 'type' => 'library', 'install_path' => __DIR__ . '/../wpify/log', 'aliases' => array(), 'dev_requirement' => \false), 'wpify/model' => array('pretty_version' => '4.1.22', 'version' => '4.1.22.0', 'reference' => 'f5c71ddb24d00496281664cdc3cac804b3394eb8', 'type' => 'library', 'install_path' => __DIR__ . '/../wpify/model', 'aliases' => array(), 'dev_requirement' => \false), 'wpify/plugin-utils' => array('pretty_version' => '1.0.1', 'version' => '1.0.1.0', 'reference' => '0ace7f3a23bdfe3e2b2b05c72af79fa034c7e77a', 'type' => 'library', 'install_path' => __DIR__ . '/../wpify/plugin-utils', 'aliases' => array(), 'dev_requirement' => \false), 'wpify/woo-core' => array('pretty_version' => '5.0.10', 'version' => '5.0.10.0', 'reference' => 'a2e369d22a3442863d0a3ccf3e87eb907bd73b47', 'type' => 'library', 'install_path' => __DIR__ . '/../wpify/woo-core', 'aliases' => array(), 'dev_requirement' => \false)));
  • wpify-woo/tags/5.0.5/wpify-woo.php

    r3264949 r3266220  
    44 * Plugin Name:          WPify Woo
    55 * Description:          Custom functionality for WooCommerce
    6  * Version:              5.0.4
     6 * Version:              5.0.5
    77 * Requires PHP:         8.1.0
    88 * Requires at least:    6.2
  • wpify-woo/trunk/readme.txt

    r3264949 r3266220  
    55Tested up to: 6.8
    66Requires PHP: 8.1
    7 Stable tag: 5.0.4
     7Stable tag: 5.0.5
    88License: GPLv2 or later
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html
     
    219219
    220220== Changelog ==
     221= 5.0.5 =
     222* Fix Delivery date display by zones
     223* Add option to Opt-In Heureka
     224* Better shortcode [wpify_woo_render_qr_code] for display QR payment
     225
    221226= 5.0.4 =
    222227* Fix Delivery date location select
  • wpify-woo/trunk/src/Modules/DeliveryDates/DeliveryDatesModule.php

    r3264949 r3266220  
    191191            ),
    192192            array(
    193                 'id'      => 'display_locations',
    194                 'type'    => 'multi_select',
    195                 'label'   => __( 'Display locations', 'wpify-woo' ),
    196                 'options' => function () use ( $locations ) {
     193                'id'           => 'display_locations',
     194                'type'         => 'multi_select',
     195                'label'        => __( 'Display locations', 'wpify-woo' ),
     196                'options'      => function () use ( $locations ) {
    197197                    return array_map( function ( $item ) {
    198198                        return [
     
    345345
    346346    /**
     347     * Get zone ID for a given country code.
     348     *
     349     * Supports zone locations by country, continent, or world.
     350     *
     351     * @param string $country_code Two-letter ISO country code (e.g. 'CZ')
     352     * @param array  $zones        All shipping zones with locations
     353     *
     354     * @return int|null
     355     */
     356    public function get_zone_id_for_country( string $country_code, array $zones ): ?int {
     357        // First, get full info about country (from WC)
     358        $wc_countries     = new \WC_Countries();
     359        $continent_code    = $wc_countries->get_continent_code_for_country( $country_code );
     360
     361        foreach ( $zones as $zone ) {
     362            if ( ! isset( $zone['zone_locations'] ) || ! is_array( $zone['zone_locations'] ) ) {
     363                continue;
     364            }
     365
     366            foreach ( $zone['zone_locations'] as $location ) {
     367                // Match by exact country
     368                if ( $location->type === 'country' && $location->code === $country_code ) {
     369                    return $zone['id'];
     370                }
     371
     372                // Match by continent
     373                if ( $location->type === 'continent' && $location->code === $continent_code ) {
     374                    return $zone['id'];
     375                }
     376
     377                // Match "worldwide"
     378                if ( $location->type === 'world' ) {
     379                    return $zone['id'];
     380                }
     381            }
     382        }
     383
     384        return null;
     385    }
     386
     387    /**
    347388     * Get formatted date or date name
    348389     *
     
    391432     * @throws \Exception
    392433     */
    393     public function display_delivery_methods( $methods_ids, $shipping_countries, $shipping_zones, $actual_country ) {
     434    public function display_delivery_methods( $methods_ids, $shipping_zones, $actual_zone_id ) {
    394435        // Get array of allowed countries names
    395436        $zone_countries = [];
     
    413454
    414455            // Get selected country
    415             $selected = in_array( $shipping_countries[ $actual_country ], $zone_countries ) ? array_search( $shipping_countries[ $actual_country ], $zone_countries ) : '0';
     456            $selected = $actual_zone_id;
    416457            $show     = $selected == $zone['id'];
    417458
     
    512553     * @param string $actual_country     code of actual country
    513554     */
    514     public function display_country_select( $shipping_countries, $shipping_zones, $zone_countries, $actual_country ) {
     555    public function display_country_select( $shipping_countries, $shipping_zones, $actual_zone_id ) {
    515556        /**
    516557         * Filter to disable country selector
     
    549590                    }
    550591
    551                     $selected     = in_array( $shipping_countries[ $actual_country ], $zone_countries ) ? array_search( $shipping_countries[ $actual_country ], $zone_countries ) : '0';
     592                    $selected = $actual_zone_id === $zone['id'];
    552593                    $country_code = array_search( $zone['formatted_zone_location'], $shipping_countries );
    553                     echo '<option value="zone-' . esc_attr( $zone['id'] ) . '" data-country="' . esc_attr( $country_code ) . '" ' . selected( $selected, $zone['id'], false ) . '>' . esc_html( $zone['formatted_zone_location'] ) . '</option>';
     594                    echo '<option value="zone-' . esc_attr( $zone['id'] ) . '" data-country="' . esc_attr( $country_code ) . '" ' . selected( $selected, true, false ) . '>' . esc_html( $zone['formatted_zone_location'] ) . '</option>';
    554595                }
    555596                ?>
     
    575616        $actual_country     = ! empty( WC()->customer ) && WC()->customer->get_shipping_country() ? WC()->customer->get_shipping_country() : WC()->countries->get_base_country();
    576617        $shipping_zones     = $this->get_all_zones();
    577         $zone_countries     = [];
    578 
    579         // Get array of allowed and enabled countries names and unset zones without enabled methods
    580         foreach ( $shipping_zones as $key => $zone ) {
    581             $enabled_count = 0;
    582             if ( isset( $zone['shipping_methods'] ) ) {
    583                 foreach ( $zone['shipping_methods'] as $method ) {
    584                     if ( $method->enabled !== 'yes' ) {
    585                         continue;
    586                     }
    587 
    588                     $enabled_count += 1;
    589                 }
    590             }
    591 
    592             if ( $enabled_count < 1 ) {
    593                 unset( $shipping_zones[ $key ] );
    594                 continue;
    595             }
    596 
    597             $zone_countries[ $key ] = $zone['formatted_zone_location'];
    598         }
    599 
    600         // Set first country from zones as actual country if default country isn't exist or not in zones
    601         if ( ! isset( $shipping_countries[ $actual_country ] ) || ! in_array( $shipping_countries[ $actual_country ], $zone_countries ) ) {
    602             $actual_country = array_search( reset( $zone_countries ), $shipping_countries );
    603         }
    604 
     618        $actual_zone_id     = $this->get_zone_id_for_country( $actual_country, $shipping_zones );
     619
     620        if ( ! $actual_zone_id ) {
     621            $actual_zone_id = array_key_first( $shipping_zones );
     622        }
    605623        ?>
    606624        <div class="wpify-woo-delivery-date">
     
    611629            }
    612630
    613             $this->display_country_select( $shipping_countries, $shipping_zones, $zone_countries, $actual_country );
     631            $this->display_country_select( $shipping_countries, $shipping_zones, $actual_zone_id );
    614632
    615633            $custom_dates = $product->get_meta( '_wpify_woo_delivery_dates' );
     
    700718
    701719                // get selected zone
    702                 $selected = isset( $shipping_countries[ $actual_country ] ) && in_array( $shipping_countries[ $actual_country ], $zone_countries ) ? array_search( $shipping_countries[ $actual_country ], $zone_countries ) : '0';
    703 
     720                $selected = $actual_zone_id;
    704721                ?>
    705722                <div class="wpify-woo-delivery-date__line"
     
    718735                            <?php
    719736                            if ( $data['shipping_methods'] ) {
    720                                 $this->display_delivery_methods( $data['shipping_methods'], $shipping_countries, $shipping_zones, $actual_country );
     737                                $this->display_delivery_methods( $data['shipping_methods'], $shipping_zones, $actual_zone_id );
    721738                            } ?>
    722739                        </div>
  • wpify-woo/trunk/src/Modules/HeurekaOverenoZakazniky/HeurekaOverenoZakaznikyModule.php

    r3262843 r3266220  
    9696            ),
    9797            array(
     98                'id'    => 'optin_mode',
     99                'type'  => 'toggle',
     100                'label' => __( 'Use Opt-In instead of Opt-Out', 'wpify-woo' ),
     101                'title' => __( 'Switch the logic to require explicit customer consent (opt-in)', 'wpify-woo' ),
     102            ),
     103            array(
    98104                'id'    => 'widget_enabled',
    99105                'type'  => 'toggle',
     
    153159        }
    154160
    155         // If customer don't agree with questionnaire
    156         if ( isset( $_POST['wpify_woo_heureka_optout'] ) && ! empty( $_POST['wpify_woo_heureka_optout'] ) ) {
     161        $use_optin = $this->get_setting( 'optin_mode' );
     162
     163        // In OPT-IN mode: if checkbox is not checked → do not send
     164        if ( $use_optin && empty( $_POST['wpify_woo_heureka_optout'] ) ) {
     165            $order->add_order_note( sprintf( __( 'Heureka: Agree with the satisfaction questionnaire: %s', 'wpify-woo' ), __( 'No', 'wpify-woo' ) ) );
     166            $order->update_meta_data( '_wpify_woo_heureka_optout_agreement', 'no' );
     167            $order->save();
     168
     169            return false;
     170        }
     171
     172        // In OPT-OUT mode: if checkbox is checked → do not send
     173        if ( ! $use_optin && ! empty( $_POST['wpify_woo_heureka_optout'] ) ) {
    157174            $order->add_order_note( sprintf( __( 'Heureka: Agree with the satisfaction questionnaire: %s', 'wpify-woo' ), __( 'No', 'wpify-woo' ) ) );
    158175            $order->update_meta_data( '_wpify_woo_heureka_optout_agreement', 'no' );
  • wpify-woo/trunk/src/Modules/QRPayment/QRPaymentModule.php

    r3257809 r3266220  
    9090                'label'   => __( 'Enabled payment methods', 'wpify-woo' ),
    9191                'buttons' => array(
    92                     'add'    => __( 'Add payment method', 'wpify-woo' ),
     92                    'add' => __( 'Add payment method', 'wpify-woo' ),
    9393                ),
    9494                'items'   => [
     
    126126                        'label'   => __( 'Accounts', 'wpify-woo' ),
    127127                        'buttons' => array(
    128                             'add'    => __( 'Add account', 'wpify-woo' ),
     128                            'add' => __( 'Add account', 'wpify-woo' ),
    129129                        ),
    130130                        'items'   => [
     
    580580
    581581    /**
    582      * Render the [wpify_woo_render_qr_code] shortcode.
     582     * Render the [wpify_woo_render_qr_code] or [wpify_woo_render_qr_code order_id="123"] shortcode.
    583583     *
    584584     * @return string
    585      */
    586     public function display_qr_code_shortcode() {
    587         if ( ! isset( $_GET['key'] ) ) {
    588             return;
    589         }
    590 
    591         $order_id = wc_get_order_id_by_order_key( $_GET['key'] );
     585     * @throws Exception
     586     */
     587    public function display_qr_code_shortcode( $atts = [] ) {
     588        $atts = shortcode_atts( [
     589            'order_id' => null,
     590        ], $atts );
     591
     592        $order_id = null;
     593
     594        // 1. If order_id is in the shortcode
     595        if ( ! empty( $atts['order_id'] ) ) {
     596            $order_id = absint( $atts['order_id'] );
     597
     598            // 2. If there is a key in the URL
     599        } elseif ( isset( $_GET['key'] ) ) {
     600            $order_id = wc_get_order_id_by_order_key( sanitize_text_field( $_GET['key'] ) );
     601
     602            // 3. If we run in an email context
     603        } elseif ( did_action( 'woocommerce_email_header' ) ) {
     604            global $email;
     605            if ( isset( $email ) && is_object( $email ) && method_exists( $email, 'get_order' ) ) {
     606                $order = $email->get_order();
     607                if ( $order instanceof WC_Order ) {
     608                    $order_id = $order->get_id();
     609                }
     610            }
     611
     612            // 4. If global $order is available
     613        } elseif ( isset( $GLOBALS['order'] ) && $GLOBALS['order'] instanceof WC_Order ) {
     614            $order_id = $GLOBALS['order']->get_id();
     615
     616            // 5. If the current order page is in "My Account"
     617        } elseif ( function_exists( 'get_query_var' ) ) {
     618            $order_id = absint( get_query_var( 'order-pay' ) ); // thankyou/order-pay
     619            if ( ! $order_id ) {
     620                $order_id = absint( get_query_var( 'view-order' ) ); // my-account/view-order
     621            }
     622        }
     623
     624        if ( empty( $order_id ) ) {
     625            return '';
     626        }
    592627
    593628        ob_start();
  • wpify-woo/trunk/src/Plugin.php

    r3264949 r3266220  
    2222
    2323    /** Plugin version */
    24     public const VERSION = '5.0.4';
     24    public const VERSION = '5.0.5';
    2525
    2626    /** Plugin slug name */
  • wpify-woo/trunk/vendor/composer/installed.php

    r3264949 r3266220  
    22    'root' => array(
    33        'name' => 'wpify/woo',
    4         'pretty_version' => '5.0.4',
    5         'version' => '5.0.4.0',
    6         'reference' => '8e0c69003a351d48fff115735966db24d8d4160f',
     4        'pretty_version' => '5.0.5',
     5        'version' => '5.0.5.0',
     6        'reference' => '5971ba92f46640ed90893d670e03e3b1df72231a',
    77        'type' => 'project',
    88        'install_path' => __DIR__ . '/../../',
     
    1212    'versions' => array(
    1313        'wpify/woo' => array(
    14             'pretty_version' => '5.0.4',
    15             'version' => '5.0.4.0',
    16             'reference' => '8e0c69003a351d48fff115735966db24d8d4160f',
     14            'pretty_version' => '5.0.5',
     15            'version' => '5.0.5.0',
     16            'reference' => '5971ba92f46640ed90893d670e03e3b1df72231a',
    1717            'type' => 'project',
    1818            'install_path' => __DIR__ . '/../../',
  • wpify-woo/trunk/vendor/wpify-woo/composer/installed.php

    r3264949 r3266220  
    33namespace WpifyWooDeps;
    44
    5 return array('root' => array('name' => '__root__', 'pretty_version' => '5.0.4', 'version' => '5.0.4.0', 'reference' => '8e0c69003a351d48fff115735966db24d8d4160f', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \true), 'versions' => array('__root__' => array('pretty_version' => '5.0.4', 'version' => '5.0.4.0', 'reference' => '8e0c69003a351d48fff115735966db24d8d4160f', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'bacon/bacon-qr-code' => array('pretty_version' => '2.0.8', 'version' => '2.0.8.0', 'reference' => '8674e51bb65af933a5ffaf1c308a660387c35c22', 'type' => 'library', 'install_path' => __DIR__ . '/../bacon/bacon-qr-code', 'aliases' => array(), 'dev_requirement' => \false), 'dasprid/enum' => array('pretty_version' => '1.0.6', 'version' => '1.0.6.0', 'reference' => '8dfd07c6d2cf31c8da90c53b83c026c7696dda90', 'type' => 'library', 'install_path' => __DIR__ . '/../dasprid/enum', 'aliases' => array(), 'dev_requirement' => \false), 'dragonbe/vies' => array('pretty_version' => '2.3.2', 'version' => '2.3.2.0', 'reference' => 'd9193cbaba7e2faefbdc228fb1bf5670f20acf30', 'type' => 'tool', 'install_path' => __DIR__ . '/../dragonbe/vies', 'aliases' => array(), 'dev_requirement' => \false), 'endroid/qr-code' => array('pretty_version' => '4.5.0', 'version' => '4.5.0.0', 'reference' => '36681470bd10352b53bcb9731bdf2270e0d79b22', 'type' => 'library', 'install_path' => __DIR__ . '/../endroid/qr-code', 'aliases' => array(), 'dev_requirement' => \false), 'guzzlehttp/guzzle' => array('pretty_version' => '7.9.3', 'version' => '7.9.3.0', 'reference' => '7b2f29fe81dc4da0ca0ea7d42107a0845946ea77', 'type' => 'library', 'install_path' => __DIR__ . '/../guzzlehttp/guzzle', 'aliases' => array(), 'dev_requirement' => \false), 'guzzlehttp/promises' => array('pretty_version' => '2.2.0', 'version' => '2.2.0.0', 'reference' => '7c69f28996b0a6920945dd20b3857e499d9ca96c', 'type' => 'library', 'install_path' => __DIR__ . '/../guzzlehttp/promises', 'aliases' => array(), 'dev_requirement' => \false), 'guzzlehttp/psr7' => array('pretty_version' => '2.7.1', 'version' => '2.7.1.0', 'reference' => 'c2270caaabe631b3b44c85f99e5a04bbb8060d16', 'type' => 'library', 'install_path' => __DIR__ . '/../guzzlehttp/psr7', 'aliases' => array(), 'dev_requirement' => \false), 'h4kuna/ares' => array('pretty_version' => 'v3.0.10', 'version' => '3.0.10.0', 'reference' => 'f3dd2531dd32731366bd8dc1055e55ddc90c460e', 'type' => 'library', 'install_path' => __DIR__ . '/../h4kuna/ares', 'aliases' => array(), 'dev_requirement' => \false), 'heureka/inflection' => array('pretty_version' => 'v3.0.4', 'version' => '3.0.4.0', 'reference' => '684ca578eee3ede920d5d3ca8d568fb70e7d9076', 'type' => 'library', 'install_path' => __DIR__ . '/../heureka/inflection', 'aliases' => array(), 'dev_requirement' => \false), 'heureka/overeno-zakazniky' => array('pretty_version' => '3.0.3', 'version' => '3.0.3.0', 'reference' => 'aa52add431bac32c67b1c00b1969a98709cd611b', 'type' => 'library', 'install_path' => __DIR__ . '/../heureka/overeno-zakazniky', 'aliases' => array(), 'dev_requirement' => \false), 'laravel/serializable-closure' => array('pretty_version' => 'v1.3.7', 'version' => '1.3.7.0', 'reference' => '4f48ade902b94323ca3be7646db16209ec76be3d', 'type' => 'library', 'install_path' => __DIR__ . '/../laravel/serializable-closure', 'aliases' => array(), 'dev_requirement' => \false), 'monolog/monolog' => array('pretty_version' => '2.10.0', 'version' => '2.10.0.0', 'reference' => '5cf826f2991858b54d5c3809bee745560a1042a7', 'type' => 'library', 'install_path' => __DIR__ . '/../monolog/monolog', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.0.6', 'version' => '4.0.6.0', 'reference' => 'ce708655043c7050eb050df361c5e313cf708309', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'php-di/invoker' => array('pretty_version' => '2.3.6', 'version' => '2.3.6.0', 'reference' => '59f15608528d8a8838d69b422a919fd6b16aa576', 'type' => 'library', 'install_path' => __DIR__ . '/../php-di/invoker', 'aliases' => array(), 'dev_requirement' => \false), 'php-di/php-di' => array('pretty_version' => '6.4.0', 'version' => '6.4.0.0', 'reference' => 'ae0f1b3b03d8b29dff81747063cbfd6276246cc4', 'type' => 'library', 'install_path' => __DIR__ . '/../php-di/php-di', 'aliases' => array(), 'dev_requirement' => \false), 'php-di/phpdoc-reader' => array('pretty_version' => '2.2.1', 'version' => '2.2.1.0', 'reference' => '66daff34cbd2627740ffec9469ffbac9f8c8185c', 'type' => 'library', 'install_path' => __DIR__ . '/../php-di/phpdoc-reader', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container' => array('pretty_version' => '1.1.2', 'version' => '1.1.2.0', 'reference' => '513e0666f7216c7459170d56df27dfcefe1689ea', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/container', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '^1.0')), 'psr/http-client' => array('pretty_version' => '1.0.3', 'version' => '1.0.3.0', 'reference' => 'bb5906edc1c324c9a05aa0873d40117941e5fa90', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-client', 'aliases' => array(), 'dev_requirement' => \false), 'psr/http-client-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0')), 'psr/http-factory' => array('pretty_version' => '1.1.0', 'version' => '1.1.0.0', 'reference' => '2b4765fddfe3b508ac62f829e852b1501d3f6e8a', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-factory', 'aliases' => array(), 'dev_requirement' => \false), 'psr/http-factory-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0')), 'psr/http-message' => array('pretty_version' => '2.0', 'version' => '2.0.0.0', 'reference' => '402d35bcb92c70c026d1a6a9883f06b2ead23d71', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-message', 'aliases' => array(), 'dev_requirement' => \false), 'psr/http-message-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0')), 'psr/log' => array('pretty_version' => '1.1.4', 'version' => '1.1.4.0', 'reference' => 'd49695b909c3b7628b6289db5479a1c204601f11', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/log', 'aliases' => array(), 'dev_requirement' => \false), 'psr/log-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0.0 || 2.0.0 || 3.0.0')), 'ralouphie/getallheaders' => array('pretty_version' => '3.0.3', 'version' => '3.0.3.0', 'reference' => '120b605dfeb996808c31b6477290a714d356e822', 'type' => 'library', 'install_path' => __DIR__ . '/../ralouphie/getallheaders', 'aliases' => array(), 'dev_requirement' => \false), 'rikudou/czqrpayment' => array('pretty_version' => 'v5.3.1', 'version' => '5.3.1.0', 'reference' => 'f8e0ecbbdb6d30bafb50a833cc7cfe4f575b82a4', 'type' => 'library', 'install_path' => __DIR__ . '/../rikudou/czqrpayment', 'aliases' => array(), 'dev_requirement' => \false), 'rikudou/iban' => array('pretty_version' => 'v1.3.0', 'version' => '1.3.0.0', 'reference' => '7fe69bf9274792c37d5a8d9d38ef5cb000f8377a', 'type' => 'library', 'install_path' => __DIR__ . '/../rikudou/iban', 'aliases' => array(), 'dev_requirement' => \false), 'rikudou/qr-payment-interface' => array('pretty_version' => 'v1.1.0', 'version' => '1.1.0.0', 'reference' => '752f7a6bf1190c7d65ead90b5989f61927436c89', 'type' => 'library', 'install_path' => __DIR__ . '/../rikudou/qr-payment-interface', 'aliases' => array(), 'dev_requirement' => \false), 'rikudou/qr-payment-qr-code-provider' => array('pretty_version' => 'v1.2.0', 'version' => '1.2.0.0', 'reference' => 'd233c4bedeecf2ff7cd7e7d4ec7f4ad4a5eb4b64', 'type' => 'library', 'install_path' => __DIR__ . '/../rikudou/qr-payment-qr-code-provider', 'aliases' => array(), 'dev_requirement' => \false), 'rikudou/skqrpayment' => array('pretty_version' => 'v4.2.2', 'version' => '4.2.2.0', 'reference' => '777fa98caaff3f10fb43f3cf67a8464c547e0550', 'type' => 'library', 'install_path' => __DIR__ . '/../rikudou/skqrpayment', 'aliases' => array(), 'dev_requirement' => \false), 'spatie/array-to-xml' => array('pretty_version' => '2.17.1', 'version' => '2.17.1.0', 'reference' => '5cbec9c6ab17e320c58a259f0cebe88bde4a7c46', 'type' => 'library', 'install_path' => __DIR__ . '/../spatie/array-to-xml', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.5.1', 'version' => '3.5.1.0', 'reference' => '74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'woocommerce/action-scheduler' => array('pretty_version' => '3.9.2', 'version' => '3.9.2.0', 'reference' => 'efbb7953f72a433086335b249292f280dd43ddfe', 'type' => 'wordpress-plugin', 'install_path' => __DIR__ . '/../woocommerce/action-scheduler', 'aliases' => array(), 'dev_requirement' => \false), 'wpify/asset' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'faf957af650b441b49f03cb7ffa42abfe157b43b', 'type' => 'library', 'install_path' => __DIR__ . '/../wpify/asset', 'aliases' => array(), 'dev_requirement' => \false), 'wpify/custom-fields' => array('pretty_version' => '4.0.44', 'version' => '4.0.44.0', 'reference' => '07090e9d39117db3126618f24b7b5c96f274d6e4', 'type' => 'library', 'install_path' => __DIR__ . '/../wpify/custom-fields', 'aliases' => array(), 'dev_requirement' => \false), 'wpify/license' => array('pretty_version' => '2.0.5', 'version' => '2.0.5.0', 'reference' => '9d075a60f71a8fe6a86a8a02ed2551d2cbf392d5', 'type' => 'library', 'install_path' => __DIR__ . '/../wpify/license', 'aliases' => array(), 'dev_requirement' => \false), 'wpify/log' => array('pretty_version' => '1.0.10', 'version' => '1.0.10.0', 'reference' => '43bb35f12babe33b0343bb3d3f85239248c48701', 'type' => 'library', 'install_path' => __DIR__ . '/../wpify/log', 'aliases' => array(), 'dev_requirement' => \false), 'wpify/model' => array('pretty_version' => '4.1.22', 'version' => '4.1.22.0', 'reference' => 'f5c71ddb24d00496281664cdc3cac804b3394eb8', 'type' => 'library', 'install_path' => __DIR__ . '/../wpify/model', 'aliases' => array(), 'dev_requirement' => \false), 'wpify/plugin-utils' => array('pretty_version' => '1.0.1', 'version' => '1.0.1.0', 'reference' => '0ace7f3a23bdfe3e2b2b05c72af79fa034c7e77a', 'type' => 'library', 'install_path' => __DIR__ . '/../wpify/plugin-utils', 'aliases' => array(), 'dev_requirement' => \false), 'wpify/woo-core' => array('pretty_version' => '5.0.10', 'version' => '5.0.10.0', 'reference' => 'a2e369d22a3442863d0a3ccf3e87eb907bd73b47', 'type' => 'library', 'install_path' => __DIR__ . '/../wpify/woo-core', 'aliases' => array(), 'dev_requirement' => \false)));
     5return array('root' => array('name' => '__root__', 'pretty_version' => '5.0.5', 'version' => '5.0.5.0', 'reference' => '5971ba92f46640ed90893d670e03e3b1df72231a', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \true), 'versions' => array('__root__' => array('pretty_version' => '5.0.5', 'version' => '5.0.5.0', 'reference' => '5971ba92f46640ed90893d670e03e3b1df72231a', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'bacon/bacon-qr-code' => array('pretty_version' => '2.0.8', 'version' => '2.0.8.0', 'reference' => '8674e51bb65af933a5ffaf1c308a660387c35c22', 'type' => 'library', 'install_path' => __DIR__ . '/../bacon/bacon-qr-code', 'aliases' => array(), 'dev_requirement' => \false), 'dasprid/enum' => array('pretty_version' => '1.0.6', 'version' => '1.0.6.0', 'reference' => '8dfd07c6d2cf31c8da90c53b83c026c7696dda90', 'type' => 'library', 'install_path' => __DIR__ . '/../dasprid/enum', 'aliases' => array(), 'dev_requirement' => \false), 'dragonbe/vies' => array('pretty_version' => '2.3.2', 'version' => '2.3.2.0', 'reference' => 'd9193cbaba7e2faefbdc228fb1bf5670f20acf30', 'type' => 'tool', 'install_path' => __DIR__ . '/../dragonbe/vies', 'aliases' => array(), 'dev_requirement' => \false), 'endroid/qr-code' => array('pretty_version' => '4.5.0', 'version' => '4.5.0.0', 'reference' => '36681470bd10352b53bcb9731bdf2270e0d79b22', 'type' => 'library', 'install_path' => __DIR__ . '/../endroid/qr-code', 'aliases' => array(), 'dev_requirement' => \false), 'guzzlehttp/guzzle' => array('pretty_version' => '7.9.3', 'version' => '7.9.3.0', 'reference' => '7b2f29fe81dc4da0ca0ea7d42107a0845946ea77', 'type' => 'library', 'install_path' => __DIR__ . '/../guzzlehttp/guzzle', 'aliases' => array(), 'dev_requirement' => \false), 'guzzlehttp/promises' => array('pretty_version' => '2.2.0', 'version' => '2.2.0.0', 'reference' => '7c69f28996b0a6920945dd20b3857e499d9ca96c', 'type' => 'library', 'install_path' => __DIR__ . '/../guzzlehttp/promises', 'aliases' => array(), 'dev_requirement' => \false), 'guzzlehttp/psr7' => array('pretty_version' => '2.7.1', 'version' => '2.7.1.0', 'reference' => 'c2270caaabe631b3b44c85f99e5a04bbb8060d16', 'type' => 'library', 'install_path' => __DIR__ . '/../guzzlehttp/psr7', 'aliases' => array(), 'dev_requirement' => \false), 'h4kuna/ares' => array('pretty_version' => 'v3.0.10', 'version' => '3.0.10.0', 'reference' => 'f3dd2531dd32731366bd8dc1055e55ddc90c460e', 'type' => 'library', 'install_path' => __DIR__ . '/../h4kuna/ares', 'aliases' => array(), 'dev_requirement' => \false), 'heureka/inflection' => array('pretty_version' => 'v3.0.4', 'version' => '3.0.4.0', 'reference' => '684ca578eee3ede920d5d3ca8d568fb70e7d9076', 'type' => 'library', 'install_path' => __DIR__ . '/../heureka/inflection', 'aliases' => array(), 'dev_requirement' => \false), 'heureka/overeno-zakazniky' => array('pretty_version' => '3.0.3', 'version' => '3.0.3.0', 'reference' => 'aa52add431bac32c67b1c00b1969a98709cd611b', 'type' => 'library', 'install_path' => __DIR__ . '/../heureka/overeno-zakazniky', 'aliases' => array(), 'dev_requirement' => \false), 'laravel/serializable-closure' => array('pretty_version' => 'v1.3.7', 'version' => '1.3.7.0', 'reference' => '4f48ade902b94323ca3be7646db16209ec76be3d', 'type' => 'library', 'install_path' => __DIR__ . '/../laravel/serializable-closure', 'aliases' => array(), 'dev_requirement' => \false), 'monolog/monolog' => array('pretty_version' => '2.10.0', 'version' => '2.10.0.0', 'reference' => '5cf826f2991858b54d5c3809bee745560a1042a7', 'type' => 'library', 'install_path' => __DIR__ . '/../monolog/monolog', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v4.0.6', 'version' => '4.0.6.0', 'reference' => 'ce708655043c7050eb050df361c5e313cf708309', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'php-di/invoker' => array('pretty_version' => '2.3.6', 'version' => '2.3.6.0', 'reference' => '59f15608528d8a8838d69b422a919fd6b16aa576', 'type' => 'library', 'install_path' => __DIR__ . '/../php-di/invoker', 'aliases' => array(), 'dev_requirement' => \false), 'php-di/php-di' => array('pretty_version' => '6.4.0', 'version' => '6.4.0.0', 'reference' => 'ae0f1b3b03d8b29dff81747063cbfd6276246cc4', 'type' => 'library', 'install_path' => __DIR__ . '/../php-di/php-di', 'aliases' => array(), 'dev_requirement' => \false), 'php-di/phpdoc-reader' => array('pretty_version' => '2.2.1', 'version' => '2.2.1.0', 'reference' => '66daff34cbd2627740ffec9469ffbac9f8c8185c', 'type' => 'library', 'install_path' => __DIR__ . '/../php-di/phpdoc-reader', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container' => array('pretty_version' => '1.1.2', 'version' => '1.1.2.0', 'reference' => '513e0666f7216c7459170d56df27dfcefe1689ea', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/container', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '^1.0')), 'psr/http-client' => array('pretty_version' => '1.0.3', 'version' => '1.0.3.0', 'reference' => 'bb5906edc1c324c9a05aa0873d40117941e5fa90', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-client', 'aliases' => array(), 'dev_requirement' => \false), 'psr/http-client-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0')), 'psr/http-factory' => array('pretty_version' => '1.1.0', 'version' => '1.1.0.0', 'reference' => '2b4765fddfe3b508ac62f829e852b1501d3f6e8a', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-factory', 'aliases' => array(), 'dev_requirement' => \false), 'psr/http-factory-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0')), 'psr/http-message' => array('pretty_version' => '2.0', 'version' => '2.0.0.0', 'reference' => '402d35bcb92c70c026d1a6a9883f06b2ead23d71', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-message', 'aliases' => array(), 'dev_requirement' => \false), 'psr/http-message-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0')), 'psr/log' => array('pretty_version' => '1.1.4', 'version' => '1.1.4.0', 'reference' => 'd49695b909c3b7628b6289db5479a1c204601f11', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/log', 'aliases' => array(), 'dev_requirement' => \false), 'psr/log-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0.0 || 2.0.0 || 3.0.0')), 'ralouphie/getallheaders' => array('pretty_version' => '3.0.3', 'version' => '3.0.3.0', 'reference' => '120b605dfeb996808c31b6477290a714d356e822', 'type' => 'library', 'install_path' => __DIR__ . '/../ralouphie/getallheaders', 'aliases' => array(), 'dev_requirement' => \false), 'rikudou/czqrpayment' => array('pretty_version' => 'v5.3.1', 'version' => '5.3.1.0', 'reference' => 'f8e0ecbbdb6d30bafb50a833cc7cfe4f575b82a4', 'type' => 'library', 'install_path' => __DIR__ . '/../rikudou/czqrpayment', 'aliases' => array(), 'dev_requirement' => \false), 'rikudou/iban' => array('pretty_version' => 'v1.3.0', 'version' => '1.3.0.0', 'reference' => '7fe69bf9274792c37d5a8d9d38ef5cb000f8377a', 'type' => 'library', 'install_path' => __DIR__ . '/../rikudou/iban', 'aliases' => array(), 'dev_requirement' => \false), 'rikudou/qr-payment-interface' => array('pretty_version' => 'v1.1.0', 'version' => '1.1.0.0', 'reference' => '752f7a6bf1190c7d65ead90b5989f61927436c89', 'type' => 'library', 'install_path' => __DIR__ . '/../rikudou/qr-payment-interface', 'aliases' => array(), 'dev_requirement' => \false), 'rikudou/qr-payment-qr-code-provider' => array('pretty_version' => 'v1.2.0', 'version' => '1.2.0.0', 'reference' => 'd233c4bedeecf2ff7cd7e7d4ec7f4ad4a5eb4b64', 'type' => 'library', 'install_path' => __DIR__ . '/../rikudou/qr-payment-qr-code-provider', 'aliases' => array(), 'dev_requirement' => \false), 'rikudou/skqrpayment' => array('pretty_version' => 'v4.2.2', 'version' => '4.2.2.0', 'reference' => '777fa98caaff3f10fb43f3cf67a8464c547e0550', 'type' => 'library', 'install_path' => __DIR__ . '/../rikudou/skqrpayment', 'aliases' => array(), 'dev_requirement' => \false), 'spatie/array-to-xml' => array('pretty_version' => '2.17.1', 'version' => '2.17.1.0', 'reference' => '5cbec9c6ab17e320c58a259f0cebe88bde4a7c46', 'type' => 'library', 'install_path' => __DIR__ . '/../spatie/array-to-xml', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.5.1', 'version' => '3.5.1.0', 'reference' => '74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'woocommerce/action-scheduler' => array('pretty_version' => '3.9.2', 'version' => '3.9.2.0', 'reference' => 'efbb7953f72a433086335b249292f280dd43ddfe', 'type' => 'wordpress-plugin', 'install_path' => __DIR__ . '/../woocommerce/action-scheduler', 'aliases' => array(), 'dev_requirement' => \false), 'wpify/asset' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => 'faf957af650b441b49f03cb7ffa42abfe157b43b', 'type' => 'library', 'install_path' => __DIR__ . '/../wpify/asset', 'aliases' => array(), 'dev_requirement' => \false), 'wpify/custom-fields' => array('pretty_version' => '4.0.44', 'version' => '4.0.44.0', 'reference' => '07090e9d39117db3126618f24b7b5c96f274d6e4', 'type' => 'library', 'install_path' => __DIR__ . '/../wpify/custom-fields', 'aliases' => array(), 'dev_requirement' => \false), 'wpify/license' => array('pretty_version' => '2.0.5', 'version' => '2.0.5.0', 'reference' => '9d075a60f71a8fe6a86a8a02ed2551d2cbf392d5', 'type' => 'library', 'install_path' => __DIR__ . '/../wpify/license', 'aliases' => array(), 'dev_requirement' => \false), 'wpify/log' => array('pretty_version' => '1.0.10', 'version' => '1.0.10.0', 'reference' => '43bb35f12babe33b0343bb3d3f85239248c48701', 'type' => 'library', 'install_path' => __DIR__ . '/../wpify/log', 'aliases' => array(), 'dev_requirement' => \false), 'wpify/model' => array('pretty_version' => '4.1.22', 'version' => '4.1.22.0', 'reference' => 'f5c71ddb24d00496281664cdc3cac804b3394eb8', 'type' => 'library', 'install_path' => __DIR__ . '/../wpify/model', 'aliases' => array(), 'dev_requirement' => \false), 'wpify/plugin-utils' => array('pretty_version' => '1.0.1', 'version' => '1.0.1.0', 'reference' => '0ace7f3a23bdfe3e2b2b05c72af79fa034c7e77a', 'type' => 'library', 'install_path' => __DIR__ . '/../wpify/plugin-utils', 'aliases' => array(), 'dev_requirement' => \false), 'wpify/woo-core' => array('pretty_version' => '5.0.10', 'version' => '5.0.10.0', 'reference' => 'a2e369d22a3442863d0a3ccf3e87eb907bd73b47', 'type' => 'library', 'install_path' => __DIR__ . '/../wpify/woo-core', 'aliases' => array(), 'dev_requirement' => \false)));
  • wpify-woo/trunk/wpify-woo.php

    r3264949 r3266220  
    44 * Plugin Name:          WPify Woo
    55 * Description:          Custom functionality for WooCommerce
    6  * Version:              5.0.4
     6 * Version:              5.0.5
    77 * Requires PHP:         8.1.0
    88 * Requires at least:    6.2
Note: See TracChangeset for help on using the changeset viewer.