Plugin Directory

Changeset 3009107


Ignore:
Timestamp:
12/12/2023 11:33:22 PM (2 years ago)
Author:
afterpayit
Message:

Release v3.7.3.

Location:
afterpay-gateway-for-woocommerce
Files:
1 deleted
18 edited
1 copied

Legend:

Unmodified
Added
Removed
  • afterpay-gateway-for-woocommerce/tags/3.7.3/afterpay-gateway-for-woocommerce.php

    r3003030 r3009107  
    55 * Author: Afterpay
    66 * Author URI: https://www.afterpay.com/
    7  * Version: 3.7.2
     7 * Version: 3.7.3
    88 * Text Domain: afterpay-gateway-for-woocommerce
    99 * WC requires at least: 3.2.6
     
    4646         *                                          the value in the comments above.
    4747         */
    48         public static $version = '3.7.2';
     48        public static $version = '3.7.3';
    4949
    5050        /**
     
    100100            add_action( 'wp_ajax_nopriv_afterpay_express_complete', array($gateway, 'create_order_and_capture_endpoint') );
    101101            add_action( 'woocommerce_api_wc_gateway_afterpay', array($gateway, 'capture_payment') );
     102
    102103            /**
    103104             * Filters.
     
    401402        }
    402403
     404        public static function extend_store_api() {
     405            if ( ! self::init() ) { return; }
     406
     407            $gateway = WC_Gateway_Afterpay::getInstance();
     408            $gateway->extend_store_api();
     409        }
     410
    403411        public static function add_woocommerce_blocks_support(){
    404412            if ( class_exists( 'Automattic\WooCommerce\Blocks\Payments\Integrations\AbstractPaymentMethodType' ) ) {
     
    472480            );
    473481
    474             /**
    475              * Register cart messaging block
    476              * Note: Unable to retrieve the WC()->cart object on the server side,
    477              * hence it cannot get the cart total dynamically, or loop through the cart items
    478              * to check restricted categories, or fetch the skus and categories for analytics.
    479              */
     482            // Register cart messaging block
    480483            $cart_messaging_asset = include( plugin_dir_path( __FILE__ ) . 'build/cart-messaging-block/frontend.asset.php');
    481484            wp_register_script(
     
    486489                true
    487490            );
    488             wp_localize_script( 'afterpay_cart_messaging','plugin_data', array(
    489                 'frontend_is_ready' => $instance->frontend_is_ready(),
    490                 'placement_attributes' => $instance->get_cart_placement_attributes(),
    491             ) );
    492491            register_block_type(
    493492                __DIR__ . '/build/cart-messaging-block/block.json',
     
    522521    add_action( 'plugins_loaded', array('Afterpay_Plugin', 'init'), 10, 0 );
    523522    add_action( 'upgrader_process_complete', array('Afterpay_Plugin', 'upgrade_complete'), 10, 2 );
     523    add_action( 'woocommerce_blocks_loaded', array('Afterpay_Plugin', 'extend_store_api') );
    524524    add_action( 'woocommerce_blocks_loaded', array('Afterpay_Plugin', 'add_woocommerce_blocks_support') );
    525525    // Declare compatibility with custom order tables for WooCommerce.
  • afterpay-gateway-for-woocommerce/tags/3.7.3/build/afterpay-blocks/index.asset.php

    r3003030 r3009107  
    1 <?php return array('dependencies' => array('react', 'wc-blocks-registry', 'wc-settings', 'wp-element', 'wp-html-entities', 'wp-i18n'), 'version' => '062d1c8ce58938b01813');
     1<?php return array('dependencies' => array('react', 'wc-blocks-registry', 'wc-settings', 'wp-element', 'wp-html-entities', 'wp-i18n'), 'version' => 'c78ad6741af6becfc5a5');
  • afterpay-gateway-for-woocommerce/tags/3.7.3/build/afterpay-blocks/index.js

    r3003030 r3009107  
    1 (()=>{"use strict";var e={433:(e,t,a)=>{a.d(t,{I:()=>r});const r=()=>{var e,t=null;(e=jQuery)(".btn-afterpay_express").length&&Square?.Marketplace&&(e(".btn-afterpay_express").prop("disabled",!1),Square.Marketplace.initializeForPopup({countryCode:afterpay_express_js_config.country_code,target:".btn-afterpay_express",buyNow:!0,pickup:!1,onCommenceCheckout:function(a){if(e(".btn-afterpay_express").prop("disabled",!0),e(".buy-backdrop").length){var r=e(".buy-backdrop").clone();r.find(':contains("Afterpay")').remove(),t||(t={overlay:r,css:e('style:contains("buy-backdrop")').clone()})}e.ajax({url:afterpay_express_js_config.ajaxurl,method:"POST",data:{action:"afterpay_express_start",nonce:afterpay_express_js_config.ec_start_nonce},success:function(e){e.success?a.resolve(e.token):(e.message?a.reject(e.message):a.reject(Square.Marketplace.CONSTANTS.BAD_RESPONSE),e.redirectUrl&&(window.location.href=e.redirectUrl))},error:function(e,t,r){a.reject(Square.Marketplace.CONSTANTS.BAD_RESPONSE),alert("Something went wrong. Please try again later.")}})},onShippingAddressChange:function(t,a){e.ajax({url:afterpay_express_js_config.ajaxurl,method:"POST",data:{action:"afterpay_express_change",nonce:afterpay_express_js_config.ec_change_nonce,address:t},success:function(e){e.hasOwnProperty("error")?a.reject(Square.Marketplace.CONSTANTS.SERVICE_UNAVAILABLE,e.message):a.resolve(e)},error:function(e,t,r){a.reject(Square.Marketplace.CONSTANTS.BAD_RESPONSE)}})},onShippingOptionChange:function(t){e.ajax({url:afterpay_express_js_config.ajaxurl,method:"POST",data:{action:"afterpay_express_shipping_change",shipping:t.id,nonce:afterpay_express_js_config.ec_change_shipping_nonce}})},onComplete:function(a){a.data&&(a.data.status&&"SUCCESS"==a.data.status?(t&&(t.overlay.appendTo("body"),t.css.appendTo("head")),e.ajax({url:afterpay_express_js_config.ajaxurl,method:"POST",data:{action:"afterpay_express_complete",nonce:afterpay_express_js_config.ec_complete_nonce,token:a.data.orderToken},success:function(a){e(".btn-afterpay_express").prop("disabled",!1),a.redirectUrl?window.location.href=a.redirectUrl:(t.overlay.remove(),t.css.remove())},error:function(a,r,n){e(".btn-afterpay_express").prop("disabled",!1),alert("Something went wrong. Please try again later."),t.overlay.remove(),t.css.remove()}})):e(".btn-afterpay_express").prop("disabled",!1))}}))};var n;(n=jQuery)((function(){r(),n(document.body).on("updated_cart_totals",r)}))}},t={};function a(r){var n=t[r];if(void 0!==n)return n.exports;var o=t[r]={exports:{}};return e[r](o,o.exports,a),o.exports}a.d=(e,t)=>{for(var r in t)a.o(t,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{const e=window.React,t=(window.wp.htmlEntities,window.wp.i18n),r=window.wp.element,n=window.wc.wcBlocksRegistry,o="afterpay",s=window.wc.wcSettings,c=()=>{const e=(0,s.getSetting)("afterpay_data",null);return e||console.log("Afterpay initialization data is not available"),e};var i,p,l=a(433);const u=t=>{const a=c()?.testmode,n={target:"#afterpay-widget-container",locale:c()?.locale,amount:{amount:(t.billing.cartTotal.value/Math.pow(10,t.billing.currency.minorUnit)).toString(),currency:t.billing.currency.code}};return(0,r.useEffect)((()=>{if(Square?.Marketplace?.Widgets){const e=document.createElement("script");e.innerHTML=`window.afterpayWidget = new Square.Marketplace.Widgets.PaymentSchedule(${JSON.stringify(n)})`,document.body.appendChild(e)}}),[]),(0,r.useEffect)((()=>{window.afterpayWidget&&window.afterpayWidget.update({amount:n.amount})}),[t.billing.cartTotal.value]),(0,e.createElement)("div",null,"production"!=a&&(0,e.createElement)("p",{className:"afterpay-test-mode-warning-text"},"TEST MODE ENABLED"),(0,e.createElement)("div",{id:"afterpay-widget-container"}))};(0,n.registerPaymentMethod)({name:o,label:(0,e.createElement)("img",{src:c()?.logo_url,alt:(0,t.__)("Afterpay","woo_afterpay")}),ariaLabel:(0,t.__)("Afterpay payment method","woo_afterpay"),canMakePayment:({cartTotals:e})=>{const t=Math.max("1.00",parseFloat(c()?.min)),a=parseFloat(c()?.max),r=parseFloat(e.total_price)/Math.pow(10,e.currency_minor_unit);return r>=t&&r<=a},content:(0,e.createElement)(u,null),edit:(0,e.createElement)(u,null),supports:{features:null!==(i=c()?.supports)&&void 0!==i?i:[]}});const d=()=>{const{ec_button:t}=c();return(0,r.useEffect)((()=>{(0,l.I)()}),[]),(0,e.createElement)("div",{dangerouslySetInnerHTML:{__html:t}})};(0,n.registerExpressPaymentMethod)({name:"express_"+o,paymentMethodId:o,content:(0,e.createElement)(d,null),edit:(0,e.createElement)(d,null),canMakePayment:({cartTotals:e})=>{var t;if(null!==(t=c()?.ec_available)&&void 0!==t&&t){const{total_price:t,currency_minor_unit:a}=e,r=parseFloat(t)/Math.pow(10,a),n=Math.max("1.00",parseFloat(c()?.min)),o=parseFloat(c()?.max);return r>=n&&r<=o}return!1},supports:{features:null!==(p=c()?.supports)&&void 0!==p?p:[]}})})()})();
     1(()=>{"use strict";var e={433:(e,t,a)=>{a.d(t,{I:()=>r});const r=()=>{var e,t=null;(e=jQuery)(".btn-afterpay_express").length&&Square?.Marketplace&&(e(".btn-afterpay_express").prop("disabled",!1),Square.Marketplace.initializeForPopup({countryCode:afterpay_express_js_config.country_code,target:".btn-afterpay_express",buyNow:!0,pickup:!1,onCommenceCheckout:function(a){if(e(".btn-afterpay_express").prop("disabled",!0),e(".buy-backdrop").length){var r=e(".buy-backdrop").clone();r.find(':contains("Afterpay")').remove(),t||(t={overlay:r,css:e('style:contains("buy-backdrop")').clone()})}e.ajax({url:afterpay_express_js_config.ajaxurl,method:"POST",data:{action:"afterpay_express_start",nonce:afterpay_express_js_config.ec_start_nonce},success:function(e){e.success?a.resolve(e.token):(e.message?a.reject(e.message):a.reject(Square.Marketplace.CONSTANTS.BAD_RESPONSE),e.redirectUrl&&(window.location.href=e.redirectUrl))},error:function(e,t,r){a.reject(Square.Marketplace.CONSTANTS.BAD_RESPONSE),alert("Something went wrong. Please try again later.")}})},onShippingAddressChange:function(t,a){e.ajax({url:afterpay_express_js_config.ajaxurl,method:"POST",data:{action:"afterpay_express_change",nonce:afterpay_express_js_config.ec_change_nonce,address:t},success:function(e){e.hasOwnProperty("error")?a.reject(Square.Marketplace.CONSTANTS.SERVICE_UNAVAILABLE,e.message):a.resolve(e)},error:function(e,t,r){a.reject(Square.Marketplace.CONSTANTS.BAD_RESPONSE)}})},onShippingOptionChange:function(t){e.ajax({url:afterpay_express_js_config.ajaxurl,method:"POST",data:{action:"afterpay_express_shipping_change",shipping:t.id,nonce:afterpay_express_js_config.ec_change_shipping_nonce}})},onComplete:function(a){a.data&&(a.data.status&&"SUCCESS"==a.data.status?(t&&(t.overlay.appendTo("body"),t.css.appendTo("head")),e.ajax({url:afterpay_express_js_config.ajaxurl,method:"POST",data:{action:"afterpay_express_complete",nonce:afterpay_express_js_config.ec_complete_nonce,token:a.data.orderToken},success:function(a){e(".btn-afterpay_express").prop("disabled",!1),a.redirectUrl?window.location.href=a.redirectUrl:(t.overlay.remove(),t.css.remove())},error:function(a,r,n){e(".btn-afterpay_express").prop("disabled",!1),alert("Something went wrong. Please try again later."),t.overlay.remove(),t.css.remove()}})):e(".btn-afterpay_express").prop("disabled",!1))}}))};var n;(n=jQuery)((function(){r(),n(document.body).on("updated_cart_totals",r)}))}},t={};function a(r){var n=t[r];if(void 0!==n)return n.exports;var o=t[r]={exports:{}};return e[r](o,o.exports,a),o.exports}a.d=(e,t)=>{for(var r in t)a.o(t,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{const e=window.React,t=(window.wp.htmlEntities,window.wp.i18n),r=window.wp.element,n=window.wc.wcBlocksRegistry,o="afterpay",s=window.wc.wcSettings,c=()=>{const e=(0,s.getSetting)("afterpay_data",null);return e||console.log("Afterpay initialization data is not available"),e};var i,p,l=a(433);const d=t=>{const a=c()?.testmode,n={target:"#afterpay-widget-container",locale:c()?.locale,amount:{amount:(t.billing.cartTotal.value/Math.pow(10,t.billing.currency.minorUnit)).toString(),currency:t.billing.currency.code}};return(0,r.useEffect)((()=>{if(Square?.Marketplace?.Widgets){const e=document.createElement("script");e.innerHTML=`window.afterpayWidget = new Square.Marketplace.Widgets.PaymentSchedule(${JSON.stringify(n)})`,document.body.appendChild(e)}}),[]),(0,r.useEffect)((()=>{window.afterpayWidget&&window.afterpayWidget.update({amount:n.amount})}),[t.billing.cartTotal.value]),(0,e.createElement)("div",null,"production"!=a&&(0,e.createElement)("p",{className:"afterpay-test-mode-warning-text"},"TEST MODE ENABLED"),(0,e.createElement)("div",{id:"afterpay-widget-container"}))};(0,n.registerPaymentMethod)({name:o,label:(0,e.createElement)("img",{src:c()?.logo_url,alt:(0,t.__)("Afterpay","woo_afterpay")}),ariaLabel:(0,t.__)("Afterpay payment method","woo_afterpay"),canMakePayment:({cartTotals:e})=>{const t=Math.max("1.00",parseFloat(c()?.min)),a=parseFloat(c()?.max),r=parseFloat(e.total_price)/Math.pow(10,e.currency_minor_unit);return r>=t&&r<=a},content:(0,e.createElement)(d,null),edit:(0,e.createElement)(d,null),supports:{features:null!==(i=c()?.supports)&&void 0!==i?i:[]}});const u=()=>{const{ec_button:t}=c();return(0,r.useEffect)((()=>{(0,l.I)()}),[]),(0,e.createElement)("div",{dangerouslySetInnerHTML:{__html:t}})};(0,n.registerExpressPaymentMethod)({name:"express_"+o,paymentMethodId:o,content:(0,e.createElement)(u,null),edit:(0,e.createElement)(u,null),canMakePayment:({cart:{cartItems:e,cartNeedsShipping:t,cartTotals:a}})=>{const{frontend_is_ready:r,ec_enabled:n,min:o,max:s}=c()||{},i=r&&n&&t&&(e=>!Array.isArray(e)||!e.some((e=>0==e.extensions?.woo_afterpay?.eligible)))(e);if(i){const{total_price:e,currency_minor_unit:t}=a,r=parseFloat(e)/Math.pow(10,t),n=Math.max("1.00",parseFloat(o)),c=parseFloat(s);return r>=n&&r<=c}return!1},supports:{features:null!==(p=c()?.supports)&&void 0!==p?p:[]}})})()})();
  • afterpay-gateway-for-woocommerce/tags/3.7.3/build/cart-messaging-block/frontend.asset.php

    r3003030 r3009107  
    1 <?php return array('dependencies' => array('react', 'wc-blocks-checkout'), 'version' => '3d64f9e064805bd58667');
     1<?php return array('dependencies' => array('react', 'wc-blocks-checkout', 'wc-settings'), 'version' => '7060b7e9c1f80c0619e0');
  • afterpay-gateway-for-woocommerce/tags/3.7.3/build/cart-messaging-block/frontend.js

    r3003030 r3009107  
    1 (()=>{"use strict";const e=window.React,t=window.wc.blocksCheckout,a={metadata:JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":3,"name":"afterpay-gateway-for-woocommerce/cart-messaging","title":"Afterpay Cart Messaging","category":"widgets","description":"Adds an Afterpay placement to the cart block","keywords":["afterpay","messaging","placement"],"version":"1","textdomain":"afterpay-gateway-for-woocommerce","parent":["woocommerce/cart-totals-block"],"viewScript":["square_marketplace_js","afterpay_cart_messaging"],"editorScript":"file:./editor.js"}'),component:t=>{const{frontend_is_ready:a,placement_attributes:r}=plugin_data;if(t?.cart?.cartTotals){if(a){const{cart:{cartTotals:a}}=t,o=a.total_price/Math.pow(10,a.currency_minor_unit);return r["data-amount"]=o,(0,e.createElement)("div",{class:t.className},(0,e.createElement)("square-placement",{...r}))}}else console.log("Context Cart Unavailable.")}};(0,t.registerCheckoutBlock)(a)})();
     1(()=>{"use strict";const t=window.React,e=window.wc.blocksCheckout,a=JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":3,"name":"afterpay-gateway-for-woocommerce/cart-messaging","title":"Afterpay Cart Messaging","category":"widgets","description":"Adds an Afterpay placement to the cart block","keywords":["afterpay","messaging","placement"],"version":"1","textdomain":"afterpay-gateway-for-woocommerce","parent":["woocommerce/cart-totals-block"],"viewScript":["square_marketplace_js","afterpay_cart_messaging"],"editorScript":"file:./editor.js"}'),r=window.wc.wcSettings,o=t=>Array.isArray(t)?t.map((t=>t.sku)).filter((t=>t)):[],s=t=>{if(Array.isArray(t)){const e=t.map((t=>t.extensions?.woo_afterpay?.categories)).flat().filter((t=>t));return[...new Set(e)]}return[]},i=t=>!Array.isArray(t)||!t.some((t=>0==t.extensions?.woo_afterpay?.eligible)),c={metadata:a,component:e=>{if(e?.cart?.cartTotals){const{frontend_is_ready:a,cart_placement_attributes:c}=(()=>{const t=(0,r.getSetting)("afterpay_data",null);return t||console.log("Afterpay initialization data is not available"),t})()||{};if(a){const{cart:{cartTotals:a,cartItems:r}}=e,n={...c,"data-amount":a.total_price/Math.pow(10,a.currency_minor_unit),"data-item-skus":o(r).join(),"data-item-categories":s(r).join(),"data-cart-is-eligible":i(r)};return(0,t.createElement)("div",{class:e.className},(0,t.createElement)("square-placement",{...n}))}}else console.log("Context Cart Unavailable.")}};(0,e.registerCheckoutBlock)(c)})();
  • afterpay-gateway-for-woocommerce/tags/3.7.3/class/WC_Gateway_Afterpay.php

    r2986471 r3009107  
    1111use Afterpay\SDK\HTTP\Request\UpdateShippingCourier;
    1212use Afterpay\SDK\Helper\UrlHelper;
     13
     14use Automattic\WooCommerce\StoreApi\Schemas\V1\CartItemSchema;
    1315
    1416if (!class_exists('WC_Gateway_Afterpay')) {
     
    299301
    300302            return
    301                 $this->enabled === 'yes' &&
    302303                $this->frontend_is_ready() &&
    303304                $within_limits  !== false &&
    304                 $products_supported !== false;
    305         }
    306 
    307         /**
    308          * Check if the gateway is available for WC Blocks.
    309          * Note:    Order amount is checked on the frontend instead.
    310          *
    311          * @return bool
    312          */
    313         public function is_available_for_blocks() {
    314             $products_supported = true;
    315             if (WC()->cart) {
    316                 $products_supported = $this->cart_products_are_supported();
    317             }
    318             return
    319                 $this->enabled === 'yes' &&
    320                 $this->frontend_is_ready() &&
    321305                $products_supported !== false;
    322306        }
     
    944928        public function render_express_checkout_on_cart_page() {
    945929            if (
    946                 !$this->express_is_available() ||
    947                 !$this->cart_is_within_limits()
     930                !$this->express_is_enabled() ||
     931                !$this->cart_is_within_limits() ||
     932                !$this->cart_products_are_supported() ||
     933                $this->cart_is_virtual()
    948934            ) {
    949935                return;
     
    963949        }
    964950
    965         public function express_is_available() {
    966             // Need to check cart total separately
     951        // Need to check cart total and eligibility separately
     952        public function express_is_enabled() {
    967953            return isset($this->settings['show-express-on-cart-page'])
    968954                && 'yes' == $this->settings['show-express-on-cart-page']
    969                 && get_woocommerce_currency() == $this->settings['settlement-currency']
    970                 && $this->cart_products_are_supported()
    971                 && !$this->cart_is_virtual();
     955                && get_woocommerce_currency() == $this->settings['settlement-currency'];
    972956        }
    973957
     
    22962280        private function get_cart_item_skus() {
    22972281            $skus = [];
    2298             if (did_action('wp_loaded')) {
     2282            if (did_action('wp_loaded') && WC()->cart) {
    22992283                foreach (WC()->cart->get_cart() as $cart_item) {
    23002284                    $product = $cart_item['data'];
     
    23482332        private function get_cart_item_categories() {
    23492333            $category_names = [];
    2350             if (did_action('wp_loaded')) {
     2334            if (did_action('wp_loaded') && WC()->cart) {
    23512335                foreach (WC()->cart->get_cart() as $cart_item) {
    23522336                    $product = $cart_item['data'];
     
    25062490            return $attributes;
    25072491        }
     2492
     2493        public function extend_store_api() {
     2494            if ( ! function_exists('woocommerce_store_api_register_endpoint_data') ) {
     2495                return;
     2496            }
     2497
     2498            woocommerce_store_api_register_endpoint_data([
     2499                'endpoint' => CartItemSchema::IDENTIFIER,
     2500                'namespace' => 'woo_afterpay',
     2501                'data_callback' => array($this, 'extend_cart_item_data'),
     2502                'schema_callback' => array($this, 'extend_cart_item_schema'),
     2503                'schema_type' => ARRAY_A,
     2504            ]);
     2505        }
     2506
     2507        public function extend_cart_item_data($cart_item) {
     2508            $product = $cart_item['data'];
     2509            $cats = $this->get_category_names_by_product($product, true);
     2510            $eligible = $this->is_product_supported($product, true);
     2511            return [
     2512                'categories' => $cats,
     2513                'eligible' => $eligible,
     2514            ];
     2515        }
     2516
     2517        public function extend_cart_item_schema() {
     2518            return [
     2519                'properties' => [
     2520                    'categories' => [
     2521                        'type' => 'array',
     2522                    ],
     2523                    'eligible' => [
     2524                        'type' => 'boolean',
     2525                    ],
     2526                ],
     2527            ];
     2528        }
    25082529    }
    25092530}
  • afterpay-gateway-for-woocommerce/tags/3.7.3/class/WC_Gateway_Afterpay_Blocks_Support.php

    r2986471 r3009107  
    2020    public function initialize() {
    2121        $this->settings = get_option( 'woocommerce_afterpay_settings', [] );
    22     }
    23 
    24     /**
    25      * Returns if this payment method should be active. If false, the scripts will not be enqueued.
    26      *
    27      * @return boolean
    28      */
    29     public function is_active() {
    30         $payment_gateways_class   = WC()->payment_gateways();
    31         $payment_gateways         = $payment_gateways_class->payment_gateways();
    32 
    33         return array_key_exists('afterpay', $payment_gateways)
    34             && $payment_gateways['afterpay']->is_available_for_blocks();
    3522    }
    3623
     
    7865            'locale' => $instance->get_js_locale(),
    7966            'supports' => $this->get_supported_features(),
    80             'ec_available' => $instance->express_is_available(),
     67            'ec_enabled' => $instance->express_is_enabled(),
    8168            'ec_button' => $instance->get_express_checkout_button_for_block(),
     69            'frontend_is_ready' => $instance->frontend_is_ready(),
     70            'cart_placement_attributes' => $instance->get_cart_placement_attributes(),
    8271        ];
    8372    }
  • afterpay-gateway-for-woocommerce/tags/3.7.3/readme.txt

    r3003030 r3009107  
    33Tags: woocommerce, afterpay
    44Requires at least: 4.8.3
    5 Tested up to: 6.4.1
    6 Stable tag: 3.7.2
     5Tested up to: 6.4.2
     6Stable tag: 3.7.3
    77License: GNU Public License
    88License URI: https://www.gnu.org/licenses/
     
    3939
    4040== Changelog ==
     41
     42= 3.7.3 =
     43*Release Date: Wednesday, 13 Dec 2023*
     44
     45* Minor bug fixes.
     46* Tested and verified support for WordPress 6.4.2 and WooCommerce 8.3.1.
    4147
    4248= 3.7.2 =
  • afterpay-gateway-for-woocommerce/tags/3.7.3/vendor/composer/installed.php

    r3003030 r3009107  
    44        'pretty_version' => 'dev-master',
    55        'version' => 'dev-master',
    6         'reference' => 'd2e0bbe033fb5ad201a731e6032da7e4ac9c3456',
     6        'reference' => 'a96e1cba8627e477845931ca180043c983df0359',
    77        'type' => 'library',
    88        'install_path' => __DIR__ . '/../../',
     
    1414            'pretty_version' => 'dev-master',
    1515            'version' => 'dev-master',
    16             'reference' => 'd2e0bbe033fb5ad201a731e6032da7e4ac9c3456',
     16            'reference' => 'a96e1cba8627e477845931ca180043c983df0359',
    1717            'type' => 'library',
    1818            'install_path' => __DIR__ . '/../../',
  • afterpay-gateway-for-woocommerce/trunk/afterpay-gateway-for-woocommerce.php

    r3003030 r3009107  
    55 * Author: Afterpay
    66 * Author URI: https://www.afterpay.com/
    7  * Version: 3.7.2
     7 * Version: 3.7.3
    88 * Text Domain: afterpay-gateway-for-woocommerce
    99 * WC requires at least: 3.2.6
     
    4646         *                                          the value in the comments above.
    4747         */
    48         public static $version = '3.7.2';
     48        public static $version = '3.7.3';
    4949
    5050        /**
     
    100100            add_action( 'wp_ajax_nopriv_afterpay_express_complete', array($gateway, 'create_order_and_capture_endpoint') );
    101101            add_action( 'woocommerce_api_wc_gateway_afterpay', array($gateway, 'capture_payment') );
     102
    102103            /**
    103104             * Filters.
     
    401402        }
    402403
     404        public static function extend_store_api() {
     405            if ( ! self::init() ) { return; }
     406
     407            $gateway = WC_Gateway_Afterpay::getInstance();
     408            $gateway->extend_store_api();
     409        }
     410
    403411        public static function add_woocommerce_blocks_support(){
    404412            if ( class_exists( 'Automattic\WooCommerce\Blocks\Payments\Integrations\AbstractPaymentMethodType' ) ) {
     
    472480            );
    473481
    474             /**
    475              * Register cart messaging block
    476              * Note: Unable to retrieve the WC()->cart object on the server side,
    477              * hence it cannot get the cart total dynamically, or loop through the cart items
    478              * to check restricted categories, or fetch the skus and categories for analytics.
    479              */
     482            // Register cart messaging block
    480483            $cart_messaging_asset = include( plugin_dir_path( __FILE__ ) . 'build/cart-messaging-block/frontend.asset.php');
    481484            wp_register_script(
     
    486489                true
    487490            );
    488             wp_localize_script( 'afterpay_cart_messaging','plugin_data', array(
    489                 'frontend_is_ready' => $instance->frontend_is_ready(),
    490                 'placement_attributes' => $instance->get_cart_placement_attributes(),
    491             ) );
    492491            register_block_type(
    493492                __DIR__ . '/build/cart-messaging-block/block.json',
     
    522521    add_action( 'plugins_loaded', array('Afterpay_Plugin', 'init'), 10, 0 );
    523522    add_action( 'upgrader_process_complete', array('Afterpay_Plugin', 'upgrade_complete'), 10, 2 );
     523    add_action( 'woocommerce_blocks_loaded', array('Afterpay_Plugin', 'extend_store_api') );
    524524    add_action( 'woocommerce_blocks_loaded', array('Afterpay_Plugin', 'add_woocommerce_blocks_support') );
    525525    // Declare compatibility with custom order tables for WooCommerce.
  • afterpay-gateway-for-woocommerce/trunk/build/afterpay-blocks/index.asset.php

    r3003030 r3009107  
    1 <?php return array('dependencies' => array('react', 'wc-blocks-registry', 'wc-settings', 'wp-element', 'wp-html-entities', 'wp-i18n'), 'version' => '062d1c8ce58938b01813');
     1<?php return array('dependencies' => array('react', 'wc-blocks-registry', 'wc-settings', 'wp-element', 'wp-html-entities', 'wp-i18n'), 'version' => 'c78ad6741af6becfc5a5');
  • afterpay-gateway-for-woocommerce/trunk/build/afterpay-blocks/index.js

    r3003030 r3009107  
    1 (()=>{"use strict";var e={433:(e,t,a)=>{a.d(t,{I:()=>r});const r=()=>{var e,t=null;(e=jQuery)(".btn-afterpay_express").length&&Square?.Marketplace&&(e(".btn-afterpay_express").prop("disabled",!1),Square.Marketplace.initializeForPopup({countryCode:afterpay_express_js_config.country_code,target:".btn-afterpay_express",buyNow:!0,pickup:!1,onCommenceCheckout:function(a){if(e(".btn-afterpay_express").prop("disabled",!0),e(".buy-backdrop").length){var r=e(".buy-backdrop").clone();r.find(':contains("Afterpay")').remove(),t||(t={overlay:r,css:e('style:contains("buy-backdrop")').clone()})}e.ajax({url:afterpay_express_js_config.ajaxurl,method:"POST",data:{action:"afterpay_express_start",nonce:afterpay_express_js_config.ec_start_nonce},success:function(e){e.success?a.resolve(e.token):(e.message?a.reject(e.message):a.reject(Square.Marketplace.CONSTANTS.BAD_RESPONSE),e.redirectUrl&&(window.location.href=e.redirectUrl))},error:function(e,t,r){a.reject(Square.Marketplace.CONSTANTS.BAD_RESPONSE),alert("Something went wrong. Please try again later.")}})},onShippingAddressChange:function(t,a){e.ajax({url:afterpay_express_js_config.ajaxurl,method:"POST",data:{action:"afterpay_express_change",nonce:afterpay_express_js_config.ec_change_nonce,address:t},success:function(e){e.hasOwnProperty("error")?a.reject(Square.Marketplace.CONSTANTS.SERVICE_UNAVAILABLE,e.message):a.resolve(e)},error:function(e,t,r){a.reject(Square.Marketplace.CONSTANTS.BAD_RESPONSE)}})},onShippingOptionChange:function(t){e.ajax({url:afterpay_express_js_config.ajaxurl,method:"POST",data:{action:"afterpay_express_shipping_change",shipping:t.id,nonce:afterpay_express_js_config.ec_change_shipping_nonce}})},onComplete:function(a){a.data&&(a.data.status&&"SUCCESS"==a.data.status?(t&&(t.overlay.appendTo("body"),t.css.appendTo("head")),e.ajax({url:afterpay_express_js_config.ajaxurl,method:"POST",data:{action:"afterpay_express_complete",nonce:afterpay_express_js_config.ec_complete_nonce,token:a.data.orderToken},success:function(a){e(".btn-afterpay_express").prop("disabled",!1),a.redirectUrl?window.location.href=a.redirectUrl:(t.overlay.remove(),t.css.remove())},error:function(a,r,n){e(".btn-afterpay_express").prop("disabled",!1),alert("Something went wrong. Please try again later."),t.overlay.remove(),t.css.remove()}})):e(".btn-afterpay_express").prop("disabled",!1))}}))};var n;(n=jQuery)((function(){r(),n(document.body).on("updated_cart_totals",r)}))}},t={};function a(r){var n=t[r];if(void 0!==n)return n.exports;var o=t[r]={exports:{}};return e[r](o,o.exports,a),o.exports}a.d=(e,t)=>{for(var r in t)a.o(t,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{const e=window.React,t=(window.wp.htmlEntities,window.wp.i18n),r=window.wp.element,n=window.wc.wcBlocksRegistry,o="afterpay",s=window.wc.wcSettings,c=()=>{const e=(0,s.getSetting)("afterpay_data",null);return e||console.log("Afterpay initialization data is not available"),e};var i,p,l=a(433);const u=t=>{const a=c()?.testmode,n={target:"#afterpay-widget-container",locale:c()?.locale,amount:{amount:(t.billing.cartTotal.value/Math.pow(10,t.billing.currency.minorUnit)).toString(),currency:t.billing.currency.code}};return(0,r.useEffect)((()=>{if(Square?.Marketplace?.Widgets){const e=document.createElement("script");e.innerHTML=`window.afterpayWidget = new Square.Marketplace.Widgets.PaymentSchedule(${JSON.stringify(n)})`,document.body.appendChild(e)}}),[]),(0,r.useEffect)((()=>{window.afterpayWidget&&window.afterpayWidget.update({amount:n.amount})}),[t.billing.cartTotal.value]),(0,e.createElement)("div",null,"production"!=a&&(0,e.createElement)("p",{className:"afterpay-test-mode-warning-text"},"TEST MODE ENABLED"),(0,e.createElement)("div",{id:"afterpay-widget-container"}))};(0,n.registerPaymentMethod)({name:o,label:(0,e.createElement)("img",{src:c()?.logo_url,alt:(0,t.__)("Afterpay","woo_afterpay")}),ariaLabel:(0,t.__)("Afterpay payment method","woo_afterpay"),canMakePayment:({cartTotals:e})=>{const t=Math.max("1.00",parseFloat(c()?.min)),a=parseFloat(c()?.max),r=parseFloat(e.total_price)/Math.pow(10,e.currency_minor_unit);return r>=t&&r<=a},content:(0,e.createElement)(u,null),edit:(0,e.createElement)(u,null),supports:{features:null!==(i=c()?.supports)&&void 0!==i?i:[]}});const d=()=>{const{ec_button:t}=c();return(0,r.useEffect)((()=>{(0,l.I)()}),[]),(0,e.createElement)("div",{dangerouslySetInnerHTML:{__html:t}})};(0,n.registerExpressPaymentMethod)({name:"express_"+o,paymentMethodId:o,content:(0,e.createElement)(d,null),edit:(0,e.createElement)(d,null),canMakePayment:({cartTotals:e})=>{var t;if(null!==(t=c()?.ec_available)&&void 0!==t&&t){const{total_price:t,currency_minor_unit:a}=e,r=parseFloat(t)/Math.pow(10,a),n=Math.max("1.00",parseFloat(c()?.min)),o=parseFloat(c()?.max);return r>=n&&r<=o}return!1},supports:{features:null!==(p=c()?.supports)&&void 0!==p?p:[]}})})()})();
     1(()=>{"use strict";var e={433:(e,t,a)=>{a.d(t,{I:()=>r});const r=()=>{var e,t=null;(e=jQuery)(".btn-afterpay_express").length&&Square?.Marketplace&&(e(".btn-afterpay_express").prop("disabled",!1),Square.Marketplace.initializeForPopup({countryCode:afterpay_express_js_config.country_code,target:".btn-afterpay_express",buyNow:!0,pickup:!1,onCommenceCheckout:function(a){if(e(".btn-afterpay_express").prop("disabled",!0),e(".buy-backdrop").length){var r=e(".buy-backdrop").clone();r.find(':contains("Afterpay")').remove(),t||(t={overlay:r,css:e('style:contains("buy-backdrop")').clone()})}e.ajax({url:afterpay_express_js_config.ajaxurl,method:"POST",data:{action:"afterpay_express_start",nonce:afterpay_express_js_config.ec_start_nonce},success:function(e){e.success?a.resolve(e.token):(e.message?a.reject(e.message):a.reject(Square.Marketplace.CONSTANTS.BAD_RESPONSE),e.redirectUrl&&(window.location.href=e.redirectUrl))},error:function(e,t,r){a.reject(Square.Marketplace.CONSTANTS.BAD_RESPONSE),alert("Something went wrong. Please try again later.")}})},onShippingAddressChange:function(t,a){e.ajax({url:afterpay_express_js_config.ajaxurl,method:"POST",data:{action:"afterpay_express_change",nonce:afterpay_express_js_config.ec_change_nonce,address:t},success:function(e){e.hasOwnProperty("error")?a.reject(Square.Marketplace.CONSTANTS.SERVICE_UNAVAILABLE,e.message):a.resolve(e)},error:function(e,t,r){a.reject(Square.Marketplace.CONSTANTS.BAD_RESPONSE)}})},onShippingOptionChange:function(t){e.ajax({url:afterpay_express_js_config.ajaxurl,method:"POST",data:{action:"afterpay_express_shipping_change",shipping:t.id,nonce:afterpay_express_js_config.ec_change_shipping_nonce}})},onComplete:function(a){a.data&&(a.data.status&&"SUCCESS"==a.data.status?(t&&(t.overlay.appendTo("body"),t.css.appendTo("head")),e.ajax({url:afterpay_express_js_config.ajaxurl,method:"POST",data:{action:"afterpay_express_complete",nonce:afterpay_express_js_config.ec_complete_nonce,token:a.data.orderToken},success:function(a){e(".btn-afterpay_express").prop("disabled",!1),a.redirectUrl?window.location.href=a.redirectUrl:(t.overlay.remove(),t.css.remove())},error:function(a,r,n){e(".btn-afterpay_express").prop("disabled",!1),alert("Something went wrong. Please try again later."),t.overlay.remove(),t.css.remove()}})):e(".btn-afterpay_express").prop("disabled",!1))}}))};var n;(n=jQuery)((function(){r(),n(document.body).on("updated_cart_totals",r)}))}},t={};function a(r){var n=t[r];if(void 0!==n)return n.exports;var o=t[r]={exports:{}};return e[r](o,o.exports,a),o.exports}a.d=(e,t)=>{for(var r in t)a.o(t,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{const e=window.React,t=(window.wp.htmlEntities,window.wp.i18n),r=window.wp.element,n=window.wc.wcBlocksRegistry,o="afterpay",s=window.wc.wcSettings,c=()=>{const e=(0,s.getSetting)("afterpay_data",null);return e||console.log("Afterpay initialization data is not available"),e};var i,p,l=a(433);const d=t=>{const a=c()?.testmode,n={target:"#afterpay-widget-container",locale:c()?.locale,amount:{amount:(t.billing.cartTotal.value/Math.pow(10,t.billing.currency.minorUnit)).toString(),currency:t.billing.currency.code}};return(0,r.useEffect)((()=>{if(Square?.Marketplace?.Widgets){const e=document.createElement("script");e.innerHTML=`window.afterpayWidget = new Square.Marketplace.Widgets.PaymentSchedule(${JSON.stringify(n)})`,document.body.appendChild(e)}}),[]),(0,r.useEffect)((()=>{window.afterpayWidget&&window.afterpayWidget.update({amount:n.amount})}),[t.billing.cartTotal.value]),(0,e.createElement)("div",null,"production"!=a&&(0,e.createElement)("p",{className:"afterpay-test-mode-warning-text"},"TEST MODE ENABLED"),(0,e.createElement)("div",{id:"afterpay-widget-container"}))};(0,n.registerPaymentMethod)({name:o,label:(0,e.createElement)("img",{src:c()?.logo_url,alt:(0,t.__)("Afterpay","woo_afterpay")}),ariaLabel:(0,t.__)("Afterpay payment method","woo_afterpay"),canMakePayment:({cartTotals:e})=>{const t=Math.max("1.00",parseFloat(c()?.min)),a=parseFloat(c()?.max),r=parseFloat(e.total_price)/Math.pow(10,e.currency_minor_unit);return r>=t&&r<=a},content:(0,e.createElement)(d,null),edit:(0,e.createElement)(d,null),supports:{features:null!==(i=c()?.supports)&&void 0!==i?i:[]}});const u=()=>{const{ec_button:t}=c();return(0,r.useEffect)((()=>{(0,l.I)()}),[]),(0,e.createElement)("div",{dangerouslySetInnerHTML:{__html:t}})};(0,n.registerExpressPaymentMethod)({name:"express_"+o,paymentMethodId:o,content:(0,e.createElement)(u,null),edit:(0,e.createElement)(u,null),canMakePayment:({cart:{cartItems:e,cartNeedsShipping:t,cartTotals:a}})=>{const{frontend_is_ready:r,ec_enabled:n,min:o,max:s}=c()||{},i=r&&n&&t&&(e=>!Array.isArray(e)||!e.some((e=>0==e.extensions?.woo_afterpay?.eligible)))(e);if(i){const{total_price:e,currency_minor_unit:t}=a,r=parseFloat(e)/Math.pow(10,t),n=Math.max("1.00",parseFloat(o)),c=parseFloat(s);return r>=n&&r<=c}return!1},supports:{features:null!==(p=c()?.supports)&&void 0!==p?p:[]}})})()})();
  • afterpay-gateway-for-woocommerce/trunk/build/cart-messaging-block/frontend.asset.php

    r3003030 r3009107  
    1 <?php return array('dependencies' => array('react', 'wc-blocks-checkout'), 'version' => '3d64f9e064805bd58667');
     1<?php return array('dependencies' => array('react', 'wc-blocks-checkout', 'wc-settings'), 'version' => '7060b7e9c1f80c0619e0');
  • afterpay-gateway-for-woocommerce/trunk/build/cart-messaging-block/frontend.js

    r3003030 r3009107  
    1 (()=>{"use strict";const e=window.React,t=window.wc.blocksCheckout,a={metadata:JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":3,"name":"afterpay-gateway-for-woocommerce/cart-messaging","title":"Afterpay Cart Messaging","category":"widgets","description":"Adds an Afterpay placement to the cart block","keywords":["afterpay","messaging","placement"],"version":"1","textdomain":"afterpay-gateway-for-woocommerce","parent":["woocommerce/cart-totals-block"],"viewScript":["square_marketplace_js","afterpay_cart_messaging"],"editorScript":"file:./editor.js"}'),component:t=>{const{frontend_is_ready:a,placement_attributes:r}=plugin_data;if(t?.cart?.cartTotals){if(a){const{cart:{cartTotals:a}}=t,o=a.total_price/Math.pow(10,a.currency_minor_unit);return r["data-amount"]=o,(0,e.createElement)("div",{class:t.className},(0,e.createElement)("square-placement",{...r}))}}else console.log("Context Cart Unavailable.")}};(0,t.registerCheckoutBlock)(a)})();
     1(()=>{"use strict";const t=window.React,e=window.wc.blocksCheckout,a=JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":3,"name":"afterpay-gateway-for-woocommerce/cart-messaging","title":"Afterpay Cart Messaging","category":"widgets","description":"Adds an Afterpay placement to the cart block","keywords":["afterpay","messaging","placement"],"version":"1","textdomain":"afterpay-gateway-for-woocommerce","parent":["woocommerce/cart-totals-block"],"viewScript":["square_marketplace_js","afterpay_cart_messaging"],"editorScript":"file:./editor.js"}'),r=window.wc.wcSettings,o=t=>Array.isArray(t)?t.map((t=>t.sku)).filter((t=>t)):[],s=t=>{if(Array.isArray(t)){const e=t.map((t=>t.extensions?.woo_afterpay?.categories)).flat().filter((t=>t));return[...new Set(e)]}return[]},i=t=>!Array.isArray(t)||!t.some((t=>0==t.extensions?.woo_afterpay?.eligible)),c={metadata:a,component:e=>{if(e?.cart?.cartTotals){const{frontend_is_ready:a,cart_placement_attributes:c}=(()=>{const t=(0,r.getSetting)("afterpay_data",null);return t||console.log("Afterpay initialization data is not available"),t})()||{};if(a){const{cart:{cartTotals:a,cartItems:r}}=e,n={...c,"data-amount":a.total_price/Math.pow(10,a.currency_minor_unit),"data-item-skus":o(r).join(),"data-item-categories":s(r).join(),"data-cart-is-eligible":i(r)};return(0,t.createElement)("div",{class:e.className},(0,t.createElement)("square-placement",{...n}))}}else console.log("Context Cart Unavailable.")}};(0,e.registerCheckoutBlock)(c)})();
  • afterpay-gateway-for-woocommerce/trunk/class/WC_Gateway_Afterpay.php

    r2986471 r3009107  
    1111use Afterpay\SDK\HTTP\Request\UpdateShippingCourier;
    1212use Afterpay\SDK\Helper\UrlHelper;
     13
     14use Automattic\WooCommerce\StoreApi\Schemas\V1\CartItemSchema;
    1315
    1416if (!class_exists('WC_Gateway_Afterpay')) {
     
    299301
    300302            return
    301                 $this->enabled === 'yes' &&
    302303                $this->frontend_is_ready() &&
    303304                $within_limits  !== false &&
    304                 $products_supported !== false;
    305         }
    306 
    307         /**
    308          * Check if the gateway is available for WC Blocks.
    309          * Note:    Order amount is checked on the frontend instead.
    310          *
    311          * @return bool
    312          */
    313         public function is_available_for_blocks() {
    314             $products_supported = true;
    315             if (WC()->cart) {
    316                 $products_supported = $this->cart_products_are_supported();
    317             }
    318             return
    319                 $this->enabled === 'yes' &&
    320                 $this->frontend_is_ready() &&
    321305                $products_supported !== false;
    322306        }
     
    944928        public function render_express_checkout_on_cart_page() {
    945929            if (
    946                 !$this->express_is_available() ||
    947                 !$this->cart_is_within_limits()
     930                !$this->express_is_enabled() ||
     931                !$this->cart_is_within_limits() ||
     932                !$this->cart_products_are_supported() ||
     933                $this->cart_is_virtual()
    948934            ) {
    949935                return;
     
    963949        }
    964950
    965         public function express_is_available() {
    966             // Need to check cart total separately
     951        // Need to check cart total and eligibility separately
     952        public function express_is_enabled() {
    967953            return isset($this->settings['show-express-on-cart-page'])
    968954                && 'yes' == $this->settings['show-express-on-cart-page']
    969                 && get_woocommerce_currency() == $this->settings['settlement-currency']
    970                 && $this->cart_products_are_supported()
    971                 && !$this->cart_is_virtual();
     955                && get_woocommerce_currency() == $this->settings['settlement-currency'];
    972956        }
    973957
     
    22962280        private function get_cart_item_skus() {
    22972281            $skus = [];
    2298             if (did_action('wp_loaded')) {
     2282            if (did_action('wp_loaded') && WC()->cart) {
    22992283                foreach (WC()->cart->get_cart() as $cart_item) {
    23002284                    $product = $cart_item['data'];
     
    23482332        private function get_cart_item_categories() {
    23492333            $category_names = [];
    2350             if (did_action('wp_loaded')) {
     2334            if (did_action('wp_loaded') && WC()->cart) {
    23512335                foreach (WC()->cart->get_cart() as $cart_item) {
    23522336                    $product = $cart_item['data'];
     
    25062490            return $attributes;
    25072491        }
     2492
     2493        public function extend_store_api() {
     2494            if ( ! function_exists('woocommerce_store_api_register_endpoint_data') ) {
     2495                return;
     2496            }
     2497
     2498            woocommerce_store_api_register_endpoint_data([
     2499                'endpoint' => CartItemSchema::IDENTIFIER,
     2500                'namespace' => 'woo_afterpay',
     2501                'data_callback' => array($this, 'extend_cart_item_data'),
     2502                'schema_callback' => array($this, 'extend_cart_item_schema'),
     2503                'schema_type' => ARRAY_A,
     2504            ]);
     2505        }
     2506
     2507        public function extend_cart_item_data($cart_item) {
     2508            $product = $cart_item['data'];
     2509            $cats = $this->get_category_names_by_product($product, true);
     2510            $eligible = $this->is_product_supported($product, true);
     2511            return [
     2512                'categories' => $cats,
     2513                'eligible' => $eligible,
     2514            ];
     2515        }
     2516
     2517        public function extend_cart_item_schema() {
     2518            return [
     2519                'properties' => [
     2520                    'categories' => [
     2521                        'type' => 'array',
     2522                    ],
     2523                    'eligible' => [
     2524                        'type' => 'boolean',
     2525                    ],
     2526                ],
     2527            ];
     2528        }
    25082529    }
    25092530}
  • afterpay-gateway-for-woocommerce/trunk/class/WC_Gateway_Afterpay_Blocks_Support.php

    r2986471 r3009107  
    2020    public function initialize() {
    2121        $this->settings = get_option( 'woocommerce_afterpay_settings', [] );
    22     }
    23 
    24     /**
    25      * Returns if this payment method should be active. If false, the scripts will not be enqueued.
    26      *
    27      * @return boolean
    28      */
    29     public function is_active() {
    30         $payment_gateways_class   = WC()->payment_gateways();
    31         $payment_gateways         = $payment_gateways_class->payment_gateways();
    32 
    33         return array_key_exists('afterpay', $payment_gateways)
    34             && $payment_gateways['afterpay']->is_available_for_blocks();
    3522    }
    3623
     
    7865            'locale' => $instance->get_js_locale(),
    7966            'supports' => $this->get_supported_features(),
    80             'ec_available' => $instance->express_is_available(),
     67            'ec_enabled' => $instance->express_is_enabled(),
    8168            'ec_button' => $instance->get_express_checkout_button_for_block(),
     69            'frontend_is_ready' => $instance->frontend_is_ready(),
     70            'cart_placement_attributes' => $instance->get_cart_placement_attributes(),
    8271        ];
    8372    }
  • afterpay-gateway-for-woocommerce/trunk/readme.txt

    r3003030 r3009107  
    33Tags: woocommerce, afterpay
    44Requires at least: 4.8.3
    5 Tested up to: 6.4.1
    6 Stable tag: 3.7.2
     5Tested up to: 6.4.2
     6Stable tag: 3.7.3
    77License: GNU Public License
    88License URI: https://www.gnu.org/licenses/
     
    3939
    4040== Changelog ==
     41
     42= 3.7.3 =
     43*Release Date: Wednesday, 13 Dec 2023*
     44
     45* Minor bug fixes.
     46* Tested and verified support for WordPress 6.4.2 and WooCommerce 8.3.1.
    4147
    4248= 3.7.2 =
  • afterpay-gateway-for-woocommerce/trunk/vendor/composer/installed.php

    r3003030 r3009107  
    44        'pretty_version' => 'dev-master',
    55        'version' => 'dev-master',
    6         'reference' => 'd2e0bbe033fb5ad201a731e6032da7e4ac9c3456',
     6        'reference' => 'a96e1cba8627e477845931ca180043c983df0359',
    77        'type' => 'library',
    88        'install_path' => __DIR__ . '/../../',
     
    1414            'pretty_version' => 'dev-master',
    1515            'version' => 'dev-master',
    16             'reference' => 'd2e0bbe033fb5ad201a731e6032da7e4ac9c3456',
     16            'reference' => 'a96e1cba8627e477845931ca180043c983df0359',
    1717            'type' => 'library',
    1818            'install_path' => __DIR__ . '/../../',
Note: See TracChangeset for help on using the changeset viewer.