Changeset 3009107
- Timestamp:
- 12/12/2023 11:33:22 PM (2 years ago)
- Location:
- afterpay-gateway-for-woocommerce
- Files:
-
- 1 deleted
- 18 edited
- 1 copied
-
tags/3.7.2 (deleted)
-
tags/3.7.3 (copied) (copied from afterpay-gateway-for-woocommerce/trunk)
-
tags/3.7.3/afterpay-gateway-for-woocommerce.php (modified) (7 diffs)
-
tags/3.7.3/build/afterpay-blocks/index.asset.php (modified) (1 diff)
-
tags/3.7.3/build/afterpay-blocks/index.js (modified) (1 diff)
-
tags/3.7.3/build/cart-messaging-block/frontend.asset.php (modified) (1 diff)
-
tags/3.7.3/build/cart-messaging-block/frontend.js (modified) (1 diff)
-
tags/3.7.3/class/WC_Gateway_Afterpay.php (modified) (7 diffs)
-
tags/3.7.3/class/WC_Gateway_Afterpay_Blocks_Support.php (modified) (2 diffs)
-
tags/3.7.3/readme.txt (modified) (2 diffs)
-
tags/3.7.3/vendor/composer/installed.php (modified) (2 diffs)
-
trunk/afterpay-gateway-for-woocommerce.php (modified) (7 diffs)
-
trunk/build/afterpay-blocks/index.asset.php (modified) (1 diff)
-
trunk/build/afterpay-blocks/index.js (modified) (1 diff)
-
trunk/build/cart-messaging-block/frontend.asset.php (modified) (1 diff)
-
trunk/build/cart-messaging-block/frontend.js (modified) (1 diff)
-
trunk/class/WC_Gateway_Afterpay.php (modified) (7 diffs)
-
trunk/class/WC_Gateway_Afterpay_Blocks_Support.php (modified) (2 diffs)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/vendor/composer/installed.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
afterpay-gateway-for-woocommerce/tags/3.7.3/afterpay-gateway-for-woocommerce.php
r3003030 r3009107 5 5 * Author: Afterpay 6 6 * Author URI: https://www.afterpay.com/ 7 * Version: 3.7. 27 * Version: 3.7.3 8 8 * Text Domain: afterpay-gateway-for-woocommerce 9 9 * WC requires at least: 3.2.6 … … 46 46 * the value in the comments above. 47 47 */ 48 public static $version = '3.7. 2';48 public static $version = '3.7.3'; 49 49 50 50 /** … … 100 100 add_action( 'wp_ajax_nopriv_afterpay_express_complete', array($gateway, 'create_order_and_capture_endpoint') ); 101 101 add_action( 'woocommerce_api_wc_gateway_afterpay', array($gateway, 'capture_payment') ); 102 102 103 /** 103 104 * Filters. … … 401 402 } 402 403 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 403 411 public static function add_woocommerce_blocks_support(){ 404 412 if ( class_exists( 'Automattic\WooCommerce\Blocks\Payments\Integrations\AbstractPaymentMethodType' ) ) { … … 472 480 ); 473 481 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 480 483 $cart_messaging_asset = include( plugin_dir_path( __FILE__ ) . 'build/cart-messaging-block/frontend.asset.php'); 481 484 wp_register_script( … … 486 489 true 487 490 ); 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 ) );492 491 register_block_type( 493 492 __DIR__ . '/build/cart-messaging-block/block.json', … … 522 521 add_action( 'plugins_loaded', array('Afterpay_Plugin', 'init'), 10, 0 ); 523 522 add_action( 'upgrader_process_complete', array('Afterpay_Plugin', 'upgrade_complete'), 10, 2 ); 523 add_action( 'woocommerce_blocks_loaded', array('Afterpay_Plugin', 'extend_store_api') ); 524 524 add_action( 'woocommerce_blocks_loaded', array('Afterpay_Plugin', 'add_woocommerce_blocks_support') ); 525 525 // 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 11 11 use Afterpay\SDK\HTTP\Request\UpdateShippingCourier; 12 12 use Afterpay\SDK\Helper\UrlHelper; 13 14 use Automattic\WooCommerce\StoreApi\Schemas\V1\CartItemSchema; 13 15 14 16 if (!class_exists('WC_Gateway_Afterpay')) { … … 299 301 300 302 return 301 $this->enabled === 'yes' &&302 303 $this->frontend_is_ready() && 303 304 $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 bool312 */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 return319 $this->enabled === 'yes' &&320 $this->frontend_is_ready() &&321 305 $products_supported !== false; 322 306 } … … 944 928 public function render_express_checkout_on_cart_page() { 945 929 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() 948 934 ) { 949 935 return; … … 963 949 } 964 950 965 public function express_is_available() {966 // Need to check cart total separately951 // Need to check cart total and eligibility separately 952 public function express_is_enabled() { 967 953 return isset($this->settings['show-express-on-cart-page']) 968 954 && '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']; 972 956 } 973 957 … … 2296 2280 private function get_cart_item_skus() { 2297 2281 $skus = []; 2298 if (did_action('wp_loaded') ) {2282 if (did_action('wp_loaded') && WC()->cart) { 2299 2283 foreach (WC()->cart->get_cart() as $cart_item) { 2300 2284 $product = $cart_item['data']; … … 2348 2332 private function get_cart_item_categories() { 2349 2333 $category_names = []; 2350 if (did_action('wp_loaded') ) {2334 if (did_action('wp_loaded') && WC()->cart) { 2351 2335 foreach (WC()->cart->get_cart() as $cart_item) { 2352 2336 $product = $cart_item['data']; … … 2506 2490 return $attributes; 2507 2491 } 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 } 2508 2529 } 2509 2530 } -
afterpay-gateway-for-woocommerce/tags/3.7.3/class/WC_Gateway_Afterpay_Blocks_Support.php
r2986471 r3009107 20 20 public function initialize() { 21 21 $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 boolean28 */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();35 22 } 36 23 … … 78 65 'locale' => $instance->get_js_locale(), 79 66 'supports' => $this->get_supported_features(), 80 'ec_ available' => $instance->express_is_available(),67 'ec_enabled' => $instance->express_is_enabled(), 81 68 '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(), 82 71 ]; 83 72 } -
afterpay-gateway-for-woocommerce/tags/3.7.3/readme.txt
r3003030 r3009107 3 3 Tags: woocommerce, afterpay 4 4 Requires at least: 4.8.3 5 Tested up to: 6.4. 16 Stable tag: 3.7. 25 Tested up to: 6.4.2 6 Stable tag: 3.7.3 7 7 License: GNU Public License 8 8 License URI: https://www.gnu.org/licenses/ … … 39 39 40 40 == 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. 41 47 42 48 = 3.7.2 = -
afterpay-gateway-for-woocommerce/tags/3.7.3/vendor/composer/installed.php
r3003030 r3009107 4 4 'pretty_version' => 'dev-master', 5 5 'version' => 'dev-master', 6 'reference' => ' d2e0bbe033fb5ad201a731e6032da7e4ac9c3456',6 'reference' => 'a96e1cba8627e477845931ca180043c983df0359', 7 7 'type' => 'library', 8 8 'install_path' => __DIR__ . '/../../', … … 14 14 'pretty_version' => 'dev-master', 15 15 'version' => 'dev-master', 16 'reference' => ' d2e0bbe033fb5ad201a731e6032da7e4ac9c3456',16 'reference' => 'a96e1cba8627e477845931ca180043c983df0359', 17 17 'type' => 'library', 18 18 'install_path' => __DIR__ . '/../../', -
afterpay-gateway-for-woocommerce/trunk/afterpay-gateway-for-woocommerce.php
r3003030 r3009107 5 5 * Author: Afterpay 6 6 * Author URI: https://www.afterpay.com/ 7 * Version: 3.7. 27 * Version: 3.7.3 8 8 * Text Domain: afterpay-gateway-for-woocommerce 9 9 * WC requires at least: 3.2.6 … … 46 46 * the value in the comments above. 47 47 */ 48 public static $version = '3.7. 2';48 public static $version = '3.7.3'; 49 49 50 50 /** … … 100 100 add_action( 'wp_ajax_nopriv_afterpay_express_complete', array($gateway, 'create_order_and_capture_endpoint') ); 101 101 add_action( 'woocommerce_api_wc_gateway_afterpay', array($gateway, 'capture_payment') ); 102 102 103 /** 103 104 * Filters. … … 401 402 } 402 403 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 403 411 public static function add_woocommerce_blocks_support(){ 404 412 if ( class_exists( 'Automattic\WooCommerce\Blocks\Payments\Integrations\AbstractPaymentMethodType' ) ) { … … 472 480 ); 473 481 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 480 483 $cart_messaging_asset = include( plugin_dir_path( __FILE__ ) . 'build/cart-messaging-block/frontend.asset.php'); 481 484 wp_register_script( … … 486 489 true 487 490 ); 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 ) );492 491 register_block_type( 493 492 __DIR__ . '/build/cart-messaging-block/block.json', … … 522 521 add_action( 'plugins_loaded', array('Afterpay_Plugin', 'init'), 10, 0 ); 523 522 add_action( 'upgrader_process_complete', array('Afterpay_Plugin', 'upgrade_complete'), 10, 2 ); 523 add_action( 'woocommerce_blocks_loaded', array('Afterpay_Plugin', 'extend_store_api') ); 524 524 add_action( 'woocommerce_blocks_loaded', array('Afterpay_Plugin', 'add_woocommerce_blocks_support') ); 525 525 // 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 11 11 use Afterpay\SDK\HTTP\Request\UpdateShippingCourier; 12 12 use Afterpay\SDK\Helper\UrlHelper; 13 14 use Automattic\WooCommerce\StoreApi\Schemas\V1\CartItemSchema; 13 15 14 16 if (!class_exists('WC_Gateway_Afterpay')) { … … 299 301 300 302 return 301 $this->enabled === 'yes' &&302 303 $this->frontend_is_ready() && 303 304 $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 bool312 */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 return319 $this->enabled === 'yes' &&320 $this->frontend_is_ready() &&321 305 $products_supported !== false; 322 306 } … … 944 928 public function render_express_checkout_on_cart_page() { 945 929 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() 948 934 ) { 949 935 return; … … 963 949 } 964 950 965 public function express_is_available() {966 // Need to check cart total separately951 // Need to check cart total and eligibility separately 952 public function express_is_enabled() { 967 953 return isset($this->settings['show-express-on-cart-page']) 968 954 && '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']; 972 956 } 973 957 … … 2296 2280 private function get_cart_item_skus() { 2297 2281 $skus = []; 2298 if (did_action('wp_loaded') ) {2282 if (did_action('wp_loaded') && WC()->cart) { 2299 2283 foreach (WC()->cart->get_cart() as $cart_item) { 2300 2284 $product = $cart_item['data']; … … 2348 2332 private function get_cart_item_categories() { 2349 2333 $category_names = []; 2350 if (did_action('wp_loaded') ) {2334 if (did_action('wp_loaded') && WC()->cart) { 2351 2335 foreach (WC()->cart->get_cart() as $cart_item) { 2352 2336 $product = $cart_item['data']; … … 2506 2490 return $attributes; 2507 2491 } 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 } 2508 2529 } 2509 2530 } -
afterpay-gateway-for-woocommerce/trunk/class/WC_Gateway_Afterpay_Blocks_Support.php
r2986471 r3009107 20 20 public function initialize() { 21 21 $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 boolean28 */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();35 22 } 36 23 … … 78 65 'locale' => $instance->get_js_locale(), 79 66 'supports' => $this->get_supported_features(), 80 'ec_ available' => $instance->express_is_available(),67 'ec_enabled' => $instance->express_is_enabled(), 81 68 '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(), 82 71 ]; 83 72 } -
afterpay-gateway-for-woocommerce/trunk/readme.txt
r3003030 r3009107 3 3 Tags: woocommerce, afterpay 4 4 Requires at least: 4.8.3 5 Tested up to: 6.4. 16 Stable tag: 3.7. 25 Tested up to: 6.4.2 6 Stable tag: 3.7.3 7 7 License: GNU Public License 8 8 License URI: https://www.gnu.org/licenses/ … … 39 39 40 40 == 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. 41 47 42 48 = 3.7.2 = -
afterpay-gateway-for-woocommerce/trunk/vendor/composer/installed.php
r3003030 r3009107 4 4 'pretty_version' => 'dev-master', 5 5 'version' => 'dev-master', 6 'reference' => ' d2e0bbe033fb5ad201a731e6032da7e4ac9c3456',6 'reference' => 'a96e1cba8627e477845931ca180043c983df0359', 7 7 'type' => 'library', 8 8 'install_path' => __DIR__ . '/../../', … … 14 14 'pretty_version' => 'dev-master', 15 15 'version' => 'dev-master', 16 'reference' => ' d2e0bbe033fb5ad201a731e6032da7e4ac9c3456',16 'reference' => 'a96e1cba8627e477845931ca180043c983df0359', 17 17 'type' => 'library', 18 18 'install_path' => __DIR__ . '/../../',
Note: See TracChangeset
for help on using the changeset viewer.