From 58436010790de86fa0316507a38aa58640a99fb9 Mon Sep 17 00:00:00 2001 From: Dimitrios Pantazis Date: Mon, 6 Mar 2023 20:48:20 +0200 Subject: [PATCH 1/5] Reviews prompt --- ...lass-wc-amazon-payments-advanced-admin.php | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) diff --git a/includes/admin/class-wc-amazon-payments-advanced-admin.php b/includes/admin/class-wc-amazon-payments-advanced-admin.php index d06670ad..50a74f31 100644 --- a/includes/admin/class-wc-amazon-payments-advanced-admin.php +++ b/includes/admin/class-wc-amazon-payments-advanced-admin.php @@ -45,7 +45,9 @@ public function __construct() { // Admin notices. add_action( 'admin_notices', array( $this, 'admin_notices' ) ); + add_action( 'admin_notices', array( $this, 'review_prompt' ) ); add_action( 'wp_ajax_amazon_pay_dismiss_notice', array( $this, 'ajax_dismiss_notice' ) ); + add_action( 'wp_ajax_amazon_pay_dismiss_review_prompt', array( $this, 'ajax_dismiss_review_prompt' ) ); // Admin Scripts. add_action( 'admin_enqueue_scripts', array( $this, 'admin_scripts' ) ); @@ -322,6 +324,103 @@ public function admin_notices() { } } + /** + * Display a prompt for reviews! + * + * @return void + */ + public function review_prompt() { + global $current_section; + + $anniversary_date = get_option( 'amazon_payments_advanced_anniversary_date' ); + $hidden_until_date = get_option( 'amazon_payments_advanced_hidden_until_date' ); + + // Set up the dates. + // We do this here, so its on admin side but not dependant on user visiting the plugin's settings. + if ( ! $anniversary_date || ! $hidden_until_date ) { + $anniversary_date = time(); + $hidden_until_date = strtotime( '+1 month' ); + update_option( 'amazon_payments_advanced_anniversary_date', $anniversary_date ); + update_option( 'amazon_payments_advanced_hidden_until_date', $hidden_until_date ); + } + + // If it should be hidden yet, bail! + if ( $hidden_until_date > time() ) { + return; + } + + // We only want prompt to appear in plugin's settings page. + if ( ! isset( $current_section ) || 'amazon_payments_advanced' !== $current_section ) { + return; + } + + $screen = get_current_screen(); + + // Ensures we are in plugin's settings page. + if ( ! isset( $screen, $screen->id ) || 'woocommerce_page_wc-settings' !== $screen->id ) { + return; + } + ?> +
+

+ +

+ +

+ + + +

+

+ + + +

+

+ + + +

+ +
+ Date: Wed, 8 Mar 2023 00:43:34 +0200 Subject: [PATCH 2/5] ensure start of calculation is valid --- includes/admin/class-wc-amazon-payments-advanced-admin.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/includes/admin/class-wc-amazon-payments-advanced-admin.php b/includes/admin/class-wc-amazon-payments-advanced-admin.php index 50a74f31..8ebe966f 100644 --- a/includes/admin/class-wc-amazon-payments-advanced-admin.php +++ b/includes/admin/class-wc-amazon-payments-advanced-admin.php @@ -407,11 +407,11 @@ public function review_prompt() { public function ajax_dismiss_review_prompt() { check_ajax_referer( 'amazon_pay_dismiss_review_prompt', 'nonce' ); - $anniversary_date = get_option( 'amazon_payments_advanced_anniversary_date' ); + $anniversary_date = get_option( 'amazon_payments_advanced_anniversary_date' ); // Start from the stored anniversary date. // Add a year in each loop until the result is in the future. - $hidden_until_date = $anniversary_date; + $hidden_until_date = is_numeric( $anniversary_date ) ? (int) $anniversary_date : time(); while ( $hidden_until_date < time() ) { $hidden_until_date = strtotime( '+1 year', $hidden_until_date ); } From 03349eec20fd5b321a38fd3fa5ac2c227bad1d1a Mon Sep 17 00:00:00 2001 From: Dimitrios Pantazis Date: Mon, 3 Apr 2023 23:10:04 +0300 Subject: [PATCH 3/5] Update Support Link --- includes/admin/class-wc-amazon-payments-advanced-admin.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/admin/class-wc-amazon-payments-advanced-admin.php b/includes/admin/class-wc-amazon-payments-advanced-admin.php index 8ebe966f..a5dbff4c 100644 --- a/includes/admin/class-wc-amazon-payments-advanced-admin.php +++ b/includes/admin/class-wc-amazon-payments-advanced-admin.php @@ -377,7 +377,7 @@ public function review_prompt() {

- +

From 75d3e1ac802b6240491ab33613dde50e93d02eb1 Mon Sep 17 00:00:00 2001 From: Dimitrios Pantazis Date: Wed, 19 Jul 2023 11:54:25 +0300 Subject: [PATCH 4/5] Updated prompt text and support URL --- includes/admin/class-wc-amazon-payments-advanced-admin.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/includes/admin/class-wc-amazon-payments-advanced-admin.php b/includes/admin/class-wc-amazon-payments-advanced-admin.php index a5dbff4c..7d134114 100644 --- a/includes/admin/class-wc-amazon-payments-advanced-admin.php +++ b/includes/admin/class-wc-amazon-payments-advanced-admin.php @@ -363,7 +363,7 @@ public function review_prompt() { ?>

- +

@@ -377,7 +377,7 @@ public function review_prompt() {

- +

From e4b16c7fa9504ac126b1b41a43b05ba748df9443 Mon Sep 17 00:00:00 2001 From: Dimitrios Pantazis Date: Wed, 19 Jul 2023 13:48:42 +0300 Subject: [PATCH 5/5] fixing edge case when hidden_until_date equals time() --- includes/admin/class-wc-amazon-payments-advanced-admin.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/admin/class-wc-amazon-payments-advanced-admin.php b/includes/admin/class-wc-amazon-payments-advanced-admin.php index 7d134114..5ed2af5b 100644 --- a/includes/admin/class-wc-amazon-payments-advanced-admin.php +++ b/includes/admin/class-wc-amazon-payments-advanced-admin.php @@ -412,7 +412,7 @@ public function ajax_dismiss_review_prompt() { // Start from the stored anniversary date. // Add a year in each loop until the result is in the future. $hidden_until_date = is_numeric( $anniversary_date ) ? (int) $anniversary_date : time(); - while ( $hidden_until_date < time() ) { + while ( $hidden_until_date <= time() ) { $hidden_until_date = strtotime( '+1 year', $hidden_until_date ); }