-
Notifications
You must be signed in to change notification settings - Fork 24
Commit
Version 5.8.1 Release
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
<?php return array('dependencies' => array('wc-blocks-registry', 'wc-settings', 'wp-element', 'wp-html-entities', 'wp-i18n'), 'version' => '56849d74fd092513b4dd'); | ||
<?php return array('dependencies' => array('react', 'wc-blocks-registry', 'wc-settings', 'wp-html-entities', 'wp-i18n'), 'version' => '4c764c6a3000337eb113'); |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
<?php return array('dependencies' => array('react', 'wc-blocks-registry', 'wc-settings', 'wp-html-entities', 'wp-i18n'), 'version' => 'd3243b6728f8e007d06d'); |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
<?php return array('dependencies' => array('react', 'wc-blocks-registry', 'wc-settings', 'wp-html-entities', 'wp-i18n'), 'version' => '565b2d7366411bcf4728'); |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
<?php return array('dependencies' => array('react', 'wc-blocks-registry', 'wc-settings', 'wp-html-entities', 'wp-i18n'), 'version' => '8169d4004807519e68e0'); |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
<?php return array('dependencies' => array('react', 'wc-blocks-registry', 'wc-settings', 'wp-html-entities', 'wp-i18n'), 'version' => '719042969f22177a35b1'); |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
<?php return array('dependencies' => array('react', 'wc-blocks-registry', 'wc-settings', 'wp-html-entities', 'wp-i18n'), 'version' => '33f5ee1a90862c137f1c'); |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,114 @@ | ||
<?php | ||
|
||
use Automattic\WooCommerce\Blocks\Payments\Integrations\AbstractPaymentMethodType; | ||
use Automattic\WooCommerce\StoreApi\Payments\PaymentContext; | ||
use Automattic\WooCommerce\StoreApi\Payments\PaymentResult; | ||
|
||
class WC_Gateway_Custom_Paystack_Blocks_Support extends AbstractPaymentMethodType { | ||
|
||
/** | ||
* Initializes the payment method type. | ||
*/ | ||
public function initialize() { | ||
$paystack_gateway_settings = get_option( 'woocommerce_paystack_settings', array() ); | ||
$custom_paystack_gateway_settings = get_option( "woocommerce_{$this->name}_settings", array() ); | ||
|
||
$this->settings = wp_parse_args( $custom_paystack_gateway_settings, $paystack_gateway_settings ); | ||
|
||
add_action( 'woocommerce_rest_checkout_process_payment_with_context', array( $this, 'failed_payment_notice' ), 8, 2 ); | ||
} | ||
|
||
/** | ||
* Returns if this payment method should be active. If false, the scripts will not be enqueued. | ||
* | ||
* @return boolean | ||
*/ | ||
public function is_active() { | ||
$payment_gateways_class = WC()->payment_gateways(); | ||
$payment_gateways = $payment_gateways_class->payment_gateways(); | ||
if ( ! isset( $payment_gateways[ $this->name ] ) ) { | ||
return false; | ||
} | ||
|
||
return $payment_gateways[ $this->name ]->is_available(); | ||
} | ||
|
||
/** | ||
* Returns an array of scripts/handles to be registered for this payment method. | ||
* | ||
* @return array | ||
*/ | ||
public function get_payment_method_script_handles() { | ||
$script_asset_path = plugins_url( "/assets/js/blocks/frontend/blocks/{$this->name}.asset.php", WC_PAYSTACK_MAIN_FILE ); | ||
$script_asset = file_exists( $script_asset_path ) | ||
? require $script_asset_path | ||
: array( | ||
'dependencies' => array(), | ||
'version' => WC_PAYSTACK_VERSION, | ||
); | ||
|
||
$script_url = plugins_url( "/assets/js/blocks/frontend/blocks/{$this->name}.js", WC_PAYSTACK_MAIN_FILE ); | ||
|
||
wp_register_script( | ||
"wc-{$this->name}-blocks", | ||
$script_url, | ||
$script_asset['dependencies'], | ||
$script_asset['version'], | ||
true | ||
); | ||
|
||
if ( function_exists( 'wp_set_script_translations' ) ) { | ||
wp_set_script_translations( "wc-{$this->name}-blocks", 'woo-paystack', ); | ||
} | ||
|
||
return array( "wc-{$this->name}-blocks" ); | ||
} | ||
|
||
/** | ||
* Returns an array of key=>value pairs of data made available to the payment methods script. | ||
* | ||
* @return array | ||
*/ | ||
public function get_payment_method_data() { | ||
$payment_gateways_class = WC()->payment_gateways(); | ||
$payment_gateways = $payment_gateways_class->payment_gateways(); | ||
$gateway = $payment_gateways[ $this->name ]; | ||
|
||
$payment_icons = $this->get_setting( 'payment_icons' ); | ||
if ( empty( $payment_icons ) ) { | ||
$payment_icons = array( 'paystack' ); | ||
} | ||
|
||
$payment_icons_url = array(); | ||
foreach ( $payment_icons as $payment_icon ) { | ||
$payment_icons_url[] = WC_HTTPS::force_https_url( plugins_url( "assets/images/{$payment_icon}.png", WC_PAYSTACK_MAIN_FILE ) ); | ||
} | ||
|
||
return array( | ||
'title' => $this->get_setting( 'title' ), | ||
'description' => $this->get_setting( 'description' ), | ||
'supports' => array_filter( $gateway->supports, array( $gateway, 'supports' ) ), | ||
'allow_saved_cards' => $gateway->saved_cards && is_user_logged_in(), | ||
'logo_urls' => $payment_icons_url, | ||
); | ||
} | ||
|
||
/** | ||
* Add failed payment notice to the payment details. | ||
* | ||
* @param PaymentContext $context Holds context for the payment. | ||
* @param PaymentResult $result Result object for the payment. | ||
*/ | ||
public function failed_payment_notice( PaymentContext $context, PaymentResult &$result ) { | ||
if ( $this->name === $context->payment_method ) { | ||
add_action( | ||
'wc_gateway_paystack_process_payment_error', | ||
function( $failed_notice ) use ( &$result ) { | ||
$payment_details = $result->payment_details; | ||
$payment_details['errorMessage'] = wp_strip_all_tags( $failed_notice ); | ||
$result->set_payment_details( $payment_details ); | ||
} | ||
); | ||
} | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
<?php | ||
|
||
final class WC_Gateway_Paystack_Five_Blocks_Support extends WC_Gateway_Custom_Paystack_Blocks_Support { | ||
|
||
/** | ||
* Payment method id. | ||
* | ||
* @var string | ||
*/ | ||
protected $name = 'paystack-five'; | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
<?php | ||
|
||
final class WC_Gateway_Paystack_Four_Blocks_Support extends WC_Gateway_Custom_Paystack_Blocks_Support { | ||
|
||
/** | ||
* Payment method id. | ||
* | ||
* @var string | ||
*/ | ||
protected $name = 'paystack-four'; | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
<?php | ||
|
||
final class WC_Gateway_Paystack_One_Blocks_Support extends WC_Gateway_Custom_Paystack_Blocks_Support { | ||
|
||
/** | ||
* Payment method id. | ||
* | ||
* @var string | ||
*/ | ||
protected $name = 'paystack-one'; | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
<?php | ||
|
||
final class WC_Gateway_Paystack_Three_Blocks_Support extends WC_Gateway_Custom_Paystack_Blocks_Support { | ||
|
||
/** | ||
* Payment method id. | ||
* | ||
* @var string | ||
*/ | ||
protected $name = 'paystack-three'; | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
<?php | ||
|
||
final class WC_Gateway_Paystack_Two_Blocks_Support extends WC_Gateway_Custom_Paystack_Blocks_Support { | ||
|
||
/** | ||
* Payment method id. | ||
* | ||
* @var string | ||
*/ | ||
protected $name = 'paystack-two'; | ||
} |