From b839bf7f660276d5f1a3a6b65d3495d0fdb4f641 Mon Sep 17 00:00:00 2001 From: asus Date: Sun, 25 Feb 2024 18:11:33 +0100 Subject: [PATCH] payment update acf fields allright --- .../php/paypal/update_user_payment.php | 83 +++++++++++++++---- private | 2 +- 2 files changed, 68 insertions(+), 17 deletions(-) diff --git a/plugins/fipfcard_plugin/php/paypal/update_user_payment.php b/plugins/fipfcard_plugin/php/paypal/update_user_payment.php index 2c85d76..b6a57cf 100644 --- a/plugins/fipfcard_plugin/php/paypal/update_user_payment.php +++ b/plugins/fipfcard_plugin/php/paypal/update_user_payment.php @@ -46,18 +46,18 @@ function fipf_update_user_payment($message, $step) $status = $message->status; -error_log("--- in update_user_payment, step :"); -error_log($step); -//error_log("message :"); -//error_log(json_encode($message)); -error_log("order_id :"); -error_log($order_id); -error_log("status :"); -error_log($status); -$user_meta_order_id = get_user_meta($user_id, 'fipf_order_id'); -error_log("user_meta->fipf_order_id :"); -error_log(json_encode($user_meta_order_id)); -error_log("... update user"); +//error_log("--- in update_user_payment, step :"); +//error_log($step); +////error_log("message :"); +////error_log(json_encode($message)); +//error_log("order_id :"); +//error_log($order_id); +//error_log("status :"); +//error_log($status); +//$user_meta_order_id = get_user_meta($user_id, 'fipf_order_id'); +//error_log("user_meta->fipf_order_id :"); +//error_log(json_encode($user_meta_order_id)); +//error_log("... update user"); // addind order_id to fipf_order_id meta field @@ -65,6 +65,7 @@ error_log("... update user"); add_user_meta($user_id, 'fipf_order_id', $order_id); // add a schedule event to delete this order_id fipf_schedule_delete_orderid($user_id, $order_id); + fipf_validate_payment_for_user($user_id, $order_id); // if transaction is COMPLETED, then delete order_id and update user if ($status === 'COMPLETED') @@ -76,10 +77,10 @@ error_log("... update user"); } -$user_meta_order_id = get_user_meta($user_id, 'fipf_order_id'); -error_log("user_meta->fipf_order_id :"); -error_log(json_encode($user_meta_order_id)); -error_log("--- out update_user_payment"); +//$user_meta_order_id = get_user_meta($user_id, 'fipf_order_id'); +//error_log("user_meta->fipf_order_id :"); +//error_log(json_encode($user_meta_order_id)); +//error_log("--- out update_user_payment"); } @@ -89,9 +90,58 @@ error_log("--- out update_user_payment"); /** * + * change acf field [carte_est_valide](validite) to true + * change acf field [date_d_achat](achat) to new current date + * change acf field [date_fin_validite](echance) to previous date + 1 year + * + * create scheduled emails to inform of end of validity + * + * acf uses 'Y-m-d H:i:s' format : + * -> https://www.advancedcustomfields.com/resources/date-time-picker/ */ function fipf_validate_payment_for_user($user_id, $order_id) { + $acf_date_format = 'Y-m-d H:i:s'; + + /** + * update card validity to true + */ + $post_id = 'user_'.$user_id; + update_field('carte_est_valide', true, $post_id); + + /** + * update purchase date to now + */ + $date_now = date($acf_date_format); + update_field('date_d_achat', $date_now, $post_id); + + /** + * update date limit validity to add 1 year + */ + $current_date_limit = get_field('date_fin_validite', $post_id); + // output is in format 'dd/mm/yyyy' which is not understood by php dates functions + // so i clean it + // -> not a reliable solution, someone can change the ouput format in dashboard + $current_date_limit = str_replace('/', '-', $current_date_limit); + // id current date limit is not in the futur, use now date + if ($current_date_limit === null) + $current_date_limit = $date_now; + else + { + // compare 2 dates : https://stackoverflow.com/q/8722806/9497573 + // also I dont use strtotime to compare 2 ints, + // because i don't know if it will fail one day (2000 bug like) + $comp_current_date_limit = date_create($current_date_limit); + $comp_date_now = date_create($date_now); + $date_is_in_past = date_diff($comp_date_now, $comp_current_date_limit)->format("%R%a") < 0; + if ($date_is_in_past) + $current_date_limit = $date_now; + } + // add one year to current date limit + $time_plus_one_year = strtotime('+1 year', strtotime($current_date_limit)); + $new_date_limit = date('Y-m-d H:i:s', $time_plus_one_year); + update_field('date_fin_validite', $new_date_limit, $post_id); + } @@ -99,6 +149,7 @@ function fipf_validate_payment_for_user($user_id, $order_id) + /** * add a schedule event to delete this order_id * after 3 days ? diff --git a/private b/private index 4f5b487..bb9ff06 160000 --- a/private +++ b/private @@ -1 +1 @@ -Subproject commit 4f5b48729022f5de5c3d4a2b9795e88768af46df +Subproject commit bb9ff06967b7a363c8e8a1c1e086bbba540428a7