From fcd7aae681ef9ef03721734384f4c22a2c8ee116 Mon Sep 17 00:00:00 2001 From: asus Date: Wed, 20 Mar 2024 21:10:56 +0100 Subject: [PATCH] better handle transfert validation --- plugins/cipf_plugin/cipf_plugin.php | 2 +- .../cipf_plugin/php/profs_form_commande.php | 5 +++-- plugins/cipf_plugin/php/profs_profil.php | 17 +++++++++++++- plugins/cipf_plugin/php/profs_states.php | 22 ++++++++++++++----- 4 files changed, 36 insertions(+), 10 deletions(-) diff --git a/plugins/cipf_plugin/cipf_plugin.php b/plugins/cipf_plugin/cipf_plugin.php index 98161d9..fe44ebf 100644 --- a/plugins/cipf_plugin/cipf_plugin.php +++ b/plugins/cipf_plugin/cipf_plugin.php @@ -4,7 +4,7 @@ Plugin Name: cipf_plugin Plugin URI: Description: Author: hugogogo -Version: 0.3.11 +Version: 0.3.11.1 Author URI: */ diff --git a/plugins/cipf_plugin/php/profs_form_commande.php b/plugins/cipf_plugin/php/profs_form_commande.php index 02270e2..513e935 100644 --- a/plugins/cipf_plugin/php/profs_form_commande.php +++ b/plugins/cipf_plugin/php/profs_form_commande.php @@ -39,8 +39,8 @@ function prof_after_form_commande_CIPF($form_id, $post_array, $form_type) { * change status to : * if paypal & new prof : 'to pay' * if paypal & expired card : 'to_pay' - * if transfert $ expired card : 'waiting_invalid' - * if transfert $ valid card : 'waiting_valid' + * if transfert $ expired card : 'waiting_invalid', reset transfert validation + * if transfert $ valid card : 'waiting_valid' , reset transfert validation * */ if (is_payment_method_paypal_CIPF($user_id)) { @@ -58,6 +58,7 @@ function prof_after_form_commande_CIPF($form_id, $post_array, $form_type) { else if (is_account_valid_CIPF($user_id)) { set_account_waiting_valid_CIPF($user_id); } + reset_acf_transfert_CIPF($user_id); } } add_action('df_after_process', 'prof_after_form_commande_CIPF', 10, 3); diff --git a/plugins/cipf_plugin/php/profs_profil.php b/plugins/cipf_plugin/php/profs_profil.php index d62cd69..e0334d6 100644 --- a/plugins/cipf_plugin/php/profs_profil.php +++ b/plugins/cipf_plugin/php/profs_profil.php @@ -30,11 +30,26 @@ function prof_after_form_transfert_validation_CIPF($form_id, $post_array, $form_ /* - * when transfert is validate, change card to valid + * check if transfert was waiting, if no stop here + * when transfert is validate, + * - change card to valid + * - and reset the field * */ + $is_transfert = false; + if (is_account_waiting_valid_CIPF($user_id)) { + $is_transfert = true; + } + else if (is_account_waiting_invalid_CIPF($user_id)) { + $is_transfert = true; + } + if ($is_transfert === false) { + reset_acf_transfert_CIPF($user_id); + return; + } if (is_transfert_success_CIPF($user_id)) { set_account_valid_CIPF($user_id); + reset_acf_transfert_CIPF($user_id); } } add_action('df_after_process', 'prof_after_form_transfert_validation_CIPF', 10, 3); diff --git a/plugins/cipf_plugin/php/profs_states.php b/plugins/cipf_plugin/php/profs_states.php index cef41ff..3e4f911 100644 --- a/plugins/cipf_plugin/php/profs_states.php +++ b/plugins/cipf_plugin/php/profs_states.php @@ -40,7 +40,7 @@ if (!defined('ABSPATH')) { * * [/] cgv * -* [/] etat_virement -> ko 0/2 : [1: at form validation - ko], [2: check on profil page - ko] +* [/] etat_virement -> ko 2/3 : [1: at form validation - ok], [2: check on profil page - ko], [3: when transfert is started, reset - ok]] * */ @@ -374,21 +374,31 @@ function is_transfert_success_CIPF($user_id = null) { $acf_id = 'user_'.$user_id; $transfert_state = get_field($acf_transfert_state['_name'], $acf_id); + /* * before first use : returns null * if checked : returns value * if unchecked : returns empty */ - if (empty($transfert_state)) { - return false; - } if (is_null($transfert_state)) { return false; } - if (reset($transfert_state) === $acf_transfert_state['success']) { + else if (empty($transfert_state)) { + return false; + } + else { return true; } - return false; +} +function reset_acf_transfert_CIPF($user_id = null) { + PLGNTLS_class::debug_infos(); + $acf_transfert_state = PLGNTLS_class::ACF_TRANSFERT_STATE; + + if (is_null($user_id)) { + $user_id = get_current_user_id(); + } + $acf_id = 'user_'.$user_id; + update_field($acf_transfert_state['_name'], array(""), $acf_id); }