Render notice about payment method (#47141)
* fetch notice from woocom for connected store * show payment mehtod notice on setting page * Combine missing payment method and expiring notice * Shorter TTL for notices transient --------- Co-authored-by: Akeda Bagus <akeda.bagus@automattic.com>
This commit is contained in:
parent
391ab0f81a
commit
22309f0484
|
@ -0,0 +1,4 @@
|
||||||
|
Significance: minor
|
||||||
|
Type: add
|
||||||
|
|
||||||
|
Display an admin notice in Setting and Extension pages when there are expiring subscriptions and connected account doesn't have a payment method.
|
|
@ -2261,6 +2261,42 @@ class WC_Helper {
|
||||||
|
|
||||||
return $woo_com_base_url . 'auto-install-init/';
|
return $woo_com_base_url . 'auto-install-init/';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieve notice for connected store.
|
||||||
|
*
|
||||||
|
* @return array An array containing notice data.
|
||||||
|
*/
|
||||||
|
public static function get_notices() {
|
||||||
|
$cache_key = '_woocommerce_helper_notices';
|
||||||
|
$cached_data = get_transient( $cache_key );
|
||||||
|
|
||||||
|
if ( false !== $cached_data ) {
|
||||||
|
return $cached_data;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fetch notice data for connected store.
|
||||||
|
$request = WC_Helper_API::get(
|
||||||
|
'notices',
|
||||||
|
array(
|
||||||
|
'authenticated' => true,
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
if ( 200 !== wp_remote_retrieve_response_code( $request ) ) {
|
||||||
|
set_transient( $cache_key, array(), 15 * MINUTE_IN_SECONDS );
|
||||||
|
return array();
|
||||||
|
}
|
||||||
|
|
||||||
|
$data = json_decode( wp_remote_retrieve_body( $request ), true );
|
||||||
|
|
||||||
|
if ( empty( $data ) || ! is_array( $data ) ) {
|
||||||
|
$data = array();
|
||||||
|
}
|
||||||
|
|
||||||
|
set_transient( $cache_key, $data, 1 * HOUR_IN_SECONDS );
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
WC_Helper::load();
|
WC_Helper::load();
|
||||||
|
|
|
@ -821,6 +821,35 @@ class PluginsHelper {
|
||||||
|
|
||||||
$total_expiring_subscriptions = count( $expiring_subscriptions );
|
$total_expiring_subscriptions = count( $expiring_subscriptions );
|
||||||
|
|
||||||
|
// When payment method is missing on WooCommerce.com.
|
||||||
|
$helper_notices = WC_Helper::get_notices();
|
||||||
|
if ( ! empty( $helper_notices['missing_payment_method_notice'] ) ) {
|
||||||
|
$description = $allowed_link
|
||||||
|
? sprintf(
|
||||||
|
/* translators: %s: WooCommerce.com URL to add payment method */
|
||||||
|
_n(
|
||||||
|
'Your WooCommerce extension subscription is missing a payment method for renewal. <a href="%s">Add a payment method</a> to ensure you continue receiving updates and streamlined support.',
|
||||||
|
'Your WooCommerce extension subscriptions are missing a payment method for renewal. <a href="%s">Add a payment method</a> to ensure you continue receiving updates and streamlined support.',
|
||||||
|
$total_expiring_subscriptions,
|
||||||
|
'woocommerce'
|
||||||
|
),
|
||||||
|
'https://woocommerce.com/my-account/add-payment-method/'
|
||||||
|
)
|
||||||
|
: _n(
|
||||||
|
'Your WooCommerce extension subscription is missing a payment method for renewal. Add a payment method to ensure you continue receiving updates and streamlined support.',
|
||||||
|
'Your WooCommerce extension subscriptions are missing a payment method for renewal. Add a payment method to ensure you continue receiving updates and streamlined support.',
|
||||||
|
$total_expiring_subscriptions,
|
||||||
|
'woocommerce'
|
||||||
|
);
|
||||||
|
|
||||||
|
return array(
|
||||||
|
'description' => $description,
|
||||||
|
'button_text' => __( 'Add payment method', 'woocommerce' ),
|
||||||
|
'button_link' => 'https://woocommerce.com/my-account/add-payment-method/',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Payment method is available but there are expiring subscriptions.
|
||||||
$notice_data = self::get_subscriptions_notice_data(
|
$notice_data = self::get_subscriptions_notice_data(
|
||||||
$subscriptions,
|
$subscriptions,
|
||||||
$expiring_subscriptions,
|
$expiring_subscriptions,
|
||||||
|
|
Loading…
Reference in New Issue