diff --git a/plugins/cipf_plugin/cipf_plugin.php b/plugins/cipf_plugin/cipf_plugin.php index bfba4ef..69f6aad 100644 --- a/plugins/cipf_plugin/cipf_plugin.php +++ b/plugins/cipf_plugin/cipf_plugin.php @@ -34,22 +34,26 @@ include_once(Plgntls::root_path() . 'php/admin_menu/menu_content.php'); include_once(Plgntls::root_path() . 'php/admin_menu/post_paypal.php'); include_once(Plgntls::root_path() . 'php/admin_menu/post_payment_messages.php'); +// paypal include_once(Plgntls::root_path() . 'php/paypal/paypal.php'); - -include_once(Plgntls::root_path() . '/php/hide_admin.php'); -//include_once(Plgntls::root_path() . '/php/menus.php'); -include_once(Plgntls::root_path() . 'php/redirections.php'); +// profs include_once(Plgntls::root_path() . 'php/profs_profil.php'); include_once(Plgntls::root_path() . 'php/profs_form_commande.php'); include_once(Plgntls::root_path() . 'php/profs_dates.php'); -include_once(Plgntls::root_path() . 'php/profs_states.php'); include_once(Plgntls::root_path() . 'php/profs_handle_states.php'); +// partners include_once(Plgntls::root_path() . 'php/partners_register.php'); include_once(Plgntls::root_path() . 'php/partners_page.php'); +include_once(Plgntls::root_path() . 'php/partners_form.php'); +// utils +//include_once(Plgntls::root_path() . '/php/menus.php'); +include_once(Plgntls::root_path() . 'php/states.php'); +include_once(Plgntls::root_path() . 'php/redirections.php'); include_once(Plgntls::root_path() . 'php/display_css.php'); include_once(Plgntls::root_path() . 'php/payments.php'); include_once(Plgntls::root_path() . 'php/random_posts.php'); - +// admin +include_once(Plgntls::root_path() . 'php/admin_hide_bar.php'); include_once(Plgntls::root_path() . 'php/admin_user_profil.php'); diff --git a/plugins/cipf_plugin/css/display_states/page_partenaire_draft.css b/plugins/cipf_plugin/css/display_states/page_partenaire_draft.css new file mode 100644 index 0000000..9df6e82 --- /dev/null +++ b/plugins/cipf_plugin/css/display_states/page_partenaire_draft.css @@ -0,0 +1,4 @@ + +[class*='cipf_display_'].cipf_display_page_partenaire_brouillon { display: block !important; } +[class*='cipf_display_'].cipf_display_page_partenaire_brouillon.cipf_flex { display: flex !important; } + diff --git a/plugins/cipf_plugin/css/display_states/page_partenaire_publish.css b/plugins/cipf_plugin/css/display_states/page_partenaire_publish.css new file mode 100644 index 0000000..1b30f22 --- /dev/null +++ b/plugins/cipf_plugin/css/display_states/page_partenaire_publish.css @@ -0,0 +1,4 @@ + +[class*='cipf_display_'].cipf_display_page_partenaire_publiee { display: block !important; } +[class*='cipf_display_'].cipf_display_page_partenaire_publiee.cipf_flex { display: flex !important; } + diff --git a/plugins/cipf_plugin/php/hide_admin.php b/plugins/cipf_plugin/php/admin_hide_bar.php similarity index 100% rename from plugins/cipf_plugin/php/hide_admin.php rename to plugins/cipf_plugin/php/admin_hide_bar.php diff --git a/plugins/cipf_plugin/php/admin_user_profil.php b/plugins/cipf_plugin/php/admin_user_profil.php index 6762f2f..17d4f15 100644 --- a/plugins/cipf_plugin/php/admin_user_profil.php +++ b/plugins/cipf_plugin/php/admin_user_profil.php @@ -13,7 +13,6 @@ if (!defined('ABSPATH')) { /* * 278 : ../../../wordpress_docker/volumes/wp_volume/wp-admin/user-edit.php -* 157 : ../../../wordpress_docker/volumes/wp_volume/wp-admin/user-edit.php * function admin_user_profil_css_CIPF($user_id) { */ @@ -27,7 +26,6 @@ function admin_user_profil_css_CIPF() { Plgntls::add_to_front(array('css/fipf_user_profile.css')); } -//add_action('edit_user_profile_update', 'admin_user_profil_css_CIPF'); add_action('user_edit_form_tag', 'admin_user_profil_css_CIPF'); diff --git a/plugins/cipf_plugin/php/display_css.php b/plugins/cipf_plugin/php/display_css.php index 706832c..4eee3e0 100644 --- a/plugins/cipf_plugin/php/display_css.php +++ b/plugins/cipf_plugin/php/display_css.php @@ -11,7 +11,7 @@ if (!defined('ABSPATH')) { -function display_page_css_CIPF($user_id = null) { +function display_states_css_CIPF($user_id = null) { Plgntls::debug_infos(); $css_for_states = array(); Plgntls::add_to_front(array('css/display_states/_default.css')); @@ -92,6 +92,19 @@ function display_page_css_CIPF($user_id = null) { $css_for_states[] = 'css/display_states/type_virement.css'; } + /* + * page partenaire + * - 'Publiee' + * - 'Brouillon' + * + */ + if (is_page_publish_CIPF($user_id)) { + $css_for_states[] = 'css/display_states/page_partenaire_publish.css'; + } + else if (is_page_draft_CIPF($user_id)) { + $css_for_states[] = 'css/display_states/page_partenaire_draft.css'; + } + Plgntls::add_to_front($css_for_states); } diff --git a/plugins/cipf_plugin/php/partners_form.php b/plugins/cipf_plugin/php/partners_form.php new file mode 100644 index 0000000..9ace344 --- /dev/null +++ b/plugins/cipf_plugin/php/partners_form.php @@ -0,0 +1,66 @@ + diff --git a/plugins/cipf_plugin/php/partners_page.php b/plugins/cipf_plugin/php/partners_page.php index 2307aa5..0605608 100644 --- a/plugins/cipf_plugin/php/partners_page.php +++ b/plugins/cipf_plugin/php/partners_page.php @@ -9,6 +9,36 @@ if (!defined('ABSPATH')) { +/* +* utility function that checks if the current page is owned by the logged in partner +* +*/ +function is_own_partner() { + Plgntls::debug_infos(2); + $role_partner = Plgntls::ROLE_PARTNER; + + if (!is_single()) { + return false; + } + if (!is_user_logged_in()) { + return false; + } + if (!current_user_can($role_partner)) { + return false; + } + global $post; + if (is_null($post)) { + return false; + } + Plgntls::debug_infos(); + $current_post_author = (int)($post->post_author); + $current_user_id = (int)get_current_user_id(); + if ($current_user_id !== $current_post_author) { + return false; + } + + return true; +} @@ -18,35 +48,26 @@ if (!defined('ABSPATH')) { */ function partner_page_scripts_CIPF() { Plgntls::debug_infos(2); - $role_partner = Plgntls::ROLE_PARTNER; + + /* + * if on post, load css + * - to hide partner own stuff + * - for states + * + */ if (!is_single()) { return; } - - /* - * if on post, load css to hide partner own stuff - * - */ + Plgntls::debug_infos(); Plgntls::add_to_front(array('css/partner_page.css')); + $post_id = get_the_ID(); + display_states_css_CIPF($post_id); /* * then check if is partner own page * */ - if (!is_user_logged_in()) { - return; - } - if (!current_user_can($role_partner)) { - return; - } - global $post; - if (is_null($post)) { - return; - } - Plgntls::debug_infos(); - $current_post_author = (int)($post->post_author); - $current_user_id = (int)get_current_user_id(); - if ($current_user_id !== $current_post_author) { + if (!is_own_partner()) { return; } @@ -61,6 +82,106 @@ add_action('wp_enqueue_scripts', 'partner_page_scripts_CIPF', 11); +/* +* listen to the front button to toggle page publish/draft +* +*/ +function toggle_partner_page_CIPF() { + Plgntls::debug_infos(); + $toggle_partner_page = Plgntls::QUERY_TOGGLE_PARTNER_PAGE; + + /* + * check if : + * - is own partner + * - has query action + * + */ + if (!is_own_partner()) { + return; + } + Plgntls::debug_infos(); + if (!isset($_GET['action'])) { + return; + } + if ($_GET['action'] !== $toggle_partner_page) { + return; + } + + /* + * get the post id and object + * + */ + $post_id = get_the_ID(); + $current_post = get_post($post_id); + if (is_null($current_post)) { + return; + } + + /* + * toogle the status + * + */ + if ($current_post->post_status === 'publish') { + wp_update_post(array( + 'ID' => $post_id, + 'post_status' => 'draft', + )); + set_page_draft_CIPF($post_id); + } + else if ($current_post->post_status === 'draft') { + wp_update_post(array( + 'ID' => $post_id, + 'post_status' => 'publish', + )); + set_page_publish_CIPF($post_id); + } + + /* + * redirects without the query + * + */ + $url = remove_query_arg('action'); + error_log("url: " . $url); + wp_safe_redirect($url); + exit; + + +} +add_action('template_redirect', 'toggle_partner_page_CIPF'); + + + + + +/* +* early checks on partner page +* +*/ +function page_partner_check_CIPF() { + Plgntls::debug_infos(2); + + // is partner own page + if (!is_own_partner()) { + return; + } + Plgntls::debug_infos(); + + $post_id = get_the_ID(); + $current_post = get_post($post_id); + + /* + * checks if the acf state field is set accrodingly to page state + * + */ + if ($current_post->post_status === 'publish') { + set_page_publish_CIPF($post_id); + } + else if ($current_post->post_status === 'draft') { + set_page_draft_CIPF($post_id); + } +} +add_action('wp', 'page_partner_check_CIPF', 11); + diff --git a/plugins/cipf_plugin/php/paypal/payment_page.php b/plugins/cipf_plugin/php/paypal/payment_page.php index 381ec4a..69076a9 100644 --- a/plugins/cipf_plugin/php/paypal/payment_page.php +++ b/plugins/cipf_plugin/php/paypal/payment_page.php @@ -90,7 +90,7 @@ function payment_page_scripts_CIPF() { $user_id = get_current_user_id(); // enqueue files here - display_page_css_CIPF($user_id); + display_states_css_CIPF($user_id); } add_action('wp_enqueue_scripts', 'payment_page_scripts_CIPF'); diff --git a/plugins/cipf_plugin/php/profs_form_commande.php b/plugins/cipf_plugin/php/profs_form_commande.php index ae7ff8d..b128eb5 100644 --- a/plugins/cipf_plugin/php/profs_form_commande.php +++ b/plugins/cipf_plugin/php/profs_form_commande.php @@ -117,7 +117,7 @@ function renew_page_filter_message_CIPF(){ $user_id = get_current_user_id(); - display_page_css_CIPF($user_id); + display_states_css_CIPF($user_id); } add_action('wp_enqueue_scripts', 'renew_page_filter_message_CIPF'); diff --git a/plugins/cipf_plugin/php/profs_profil.php b/plugins/cipf_plugin/php/profs_profil.php index 55aceee..1d792bc 100644 --- a/plugins/cipf_plugin/php/profs_profil.php +++ b/plugins/cipf_plugin/php/profs_profil.php @@ -144,7 +144,7 @@ function prof_profil_scripts_CIPF() { // the way to find the id of the author of an author_page $author_id = get_queried_object_id(); - display_page_css_CIPF($author_id); + display_states_css_CIPF($author_id); } add_action('wp_enqueue_scripts', 'prof_profil_scripts_CIPF', 11); diff --git a/plugins/cipf_plugin/php/profs_states.php b/plugins/cipf_plugin/php/states.php similarity index 79% rename from plugins/cipf_plugin/php/profs_states.php rename to plugins/cipf_plugin/php/states.php index a51691c..48927ca 100644 --- a/plugins/cipf_plugin/php/profs_states.php +++ b/plugins/cipf_plugin/php/states.php @@ -32,6 +32,10 @@ if (!defined('ABSPATH')) { * - 'Paypal' -> ok 1/1 : [1: modified by diviformbuilder at form validation - ok] * - 'Virement' -> ok 1/1 : [1: modified by diviformbuilder at form validation - ok] * +* [/] etat partenaire ('etat_page_partenaire') : +* - 'publie' +* - 'brouillon' +* * [/] numero de carte ('numero_de_la_carte') -> ok 1/1 : [1: after payment & card is 'commande' - ok] * * [/] etat_virement -> ko 2/3 : [1: at form validation - ok], [2: check on profil page - ko], [3: when transfert is started, reset - ok]] @@ -79,14 +83,9 @@ function get_field_init_CIPF($acf_field_name, $acf_id) { * global 'setter' and 'izzer' for this file * */ -function is_acf_state_CIPF($acf_field, $state_name, $user_id = null) { +function is_acf_state_CIPF($acf_field, $state_name, $acf_id) { Plgntls::debug_infos(); - if (is_null($user_id)) { - $user_id = get_current_user_id(); - } - $acf_id = 'user_'.$user_id; - /* * when acf fields have not been initated a first time, you can't find them by name * - one solution is to use key instead @@ -107,14 +106,8 @@ function is_acf_state_CIPF($acf_field, $state_name, $user_id = null) { } return false; } -function set_acf_state_CIPF($acf_field, $state_name, $user_id = null) { +function set_acf_state_CIPF($acf_field, $state_name, $acf_id) { Plgntls::debug_infos(); - - if (is_null($user_id)) { - $user_id = get_current_user_id(); - } - $acf_id = 'user_'.$user_id; - update_field($acf_field['_name'], $acf_field[$state_name], $acf_id); } @@ -139,7 +132,11 @@ function set_acf_state_CIPF($acf_field, $state_name, $user_id = null) { function is_account_state_CIPF($state_name, $user_id = null) { Plgntls::debug_infos(); $acf_account_state = Plgntls::ACF_ACCOUNT_STATE; - return is_acf_state_CIPF($acf_account_state, $state_name, $user_id); + if (is_null($user_id)) { + $user_id = get_current_user_id(); + } + $acf_id = 'user_'.$user_id; + return is_acf_state_CIPF($acf_account_state, $state_name, $acf_id); } function is_account_new_CIPF($user_id = null) { Plgntls::debug_infos(); @@ -182,7 +179,11 @@ function is_account_waiting_transfert_CIPF($user_id = null) { function set_account_state_CIPF($state_name, $user_id = null) { Plgntls::debug_infos(); $acf_account_state = Plgntls::ACF_ACCOUNT_STATE; - set_acf_state_CIPF($acf_account_state, $state_name, $user_id); + if (is_null($user_id)) { + $user_id = get_current_user_id(); + } + $acf_id = 'user_'.$user_id; + set_acf_state_CIPF($acf_account_state, $state_name, $acf_id); } function set_account_new_CIPF($user_id = null) { Plgntls::debug_infos(); @@ -220,25 +221,91 @@ function set_account_expired_CIPF($user_id = null) { * - 'Renouvellement' * */ -function is_card_new_CIPF($user_id = null) { +function is_card_state_CIPF($state, $user_id = null) { Plgntls::debug_infos(); $acf_card_state = Plgntls::ACF_CARD_STATE; - return is_acf_state_CIPF($acf_card_state, 'new', $user_id); + if (is_null($user_id)) { + $user_id = get_current_user_id(); + } + $acf_id = 'user_'.$user_id; + return is_acf_state_CIPF($acf_card_state, $state, $acf_id); +} +function is_card_new_CIPF($user_id = null) { + Plgntls::debug_infos(); + return is_card_state_CIPF('new', $user_id); } function is_card_renew_CIPF($user_id = null) { + Plgntls::debug_infos(); + return is_card_state_CIPF('renew', $user_id); +} +/* +* setters : +*/ +function set_card_state_CIPF($state, $user_id = null) { Plgntls::debug_infos(); $acf_card_state = Plgntls::ACF_CARD_STATE; - return is_acf_state_CIPF($acf_card_state, 'renew', $user_id); + if (is_null($user_id)) { + $user_id = get_current_user_id(); + } + $acf_id = 'user_'.$user_id; + set_acf_state_CIPF($acf_card_state, $state, $acf_id); } function set_card_new_CIPF($user_id = null) { Plgntls::debug_infos(); - $acf_card_state = Plgntls::ACF_CARD_STATE; - set_acf_state_CIPF($acf_card_state, 'new', $user_id); + set_card_state_CIPF('new', $user_id); } function set_card_renew_CIPF($user_id = null) { Plgntls::debug_infos(); - $acf_card_state = Plgntls::ACF_CARD_STATE; - set_acf_state_CIPF($acf_card_state, 'renew', $user_id); + set_card_state_CIPF('renew', $user_id); +} + + + + + + +/* +* etat page partenaire ('etat_page_partenaire') : +* - 'Publiee' +* - 'Brouillon' +* +*/ +function is_page_state_CIPF($state, $post_id = null) { + Plgntls::debug_infos(); + $acf_page_state = Plgntls::ACF_PAGE_STATE; + if (is_null($post_id)) { + $post_id = get_the_ID(); + } + $acf_id = $post_id; + return is_acf_state_CIPF($acf_page_state, $state, $acf_id); +} +function is_page_publish_CIPF($post_id = null) { + Plgntls::debug_infos(); + return is_page_state_CIPF('publish', $post_id); +} +function is_page_draft_CIPF($post_id = null) { + Plgntls::debug_infos(); + return is_page_state_CIPF('draft', $post_id); +} +/* +* setters : +*/ +function set_page_state_CIPF($state, $post_id = null) { + Plgntls::debug_infos(); + $acf_page_state = Plgntls::ACF_PAGE_STATE; + if (is_null($post_id)) { + $post_id = get_the_ID(); + } + $acf_id = $post_id; + set_acf_state_CIPF($acf_page_state, $state, $acf_id); +} +function set_page_publish_CIPF($post_id = null) { + Plgntls::debug_infos(); + set_page_state_CIPF('publish', $post_id); +} +function set_page_draft_CIPF($post_id = null) { + Plgntls::debug_infos(); + set_page_state_CIPF('draft', $post_id); } @@ -252,15 +319,22 @@ function set_card_renew_CIPF($user_id = null) { * - 'transfert'=>'Virement' * */ -function is_payment_method_paypal_CIPF($user_id = null) { +function is_card_method_CIPF($state, $user_id = null) { Plgntls::debug_infos(); $acf_card_payment_method = Plgntls::ACF_CARD_PAYMENT_METHOD; - return is_acf_state_CIPF($acf_card_payment_method, 'paypal', $user_id); + if (is_null($user_id)) { + $user_id = get_current_user_id(); + } + $acf_id = 'user_'.$user_id; + return is_acf_state_CIPF($acf_card_payment_method, $state, $acf_id); +} +function is_payment_method_paypal_CIPF($user_id = null) { + Plgntls::debug_infos(); + return is_card_method_CIPF('paypal', $user_id); } function is_payment_method_transfert_CIPF($user_id = null) { Plgntls::debug_infos(); - $acf_card_payment_method = Plgntls::ACF_CARD_PAYMENT_METHOD; - return is_acf_state_CIPF($acf_card_payment_method, 'transfert', $user_id); + return is_card_method_CIPF('transfert', $user_id); } @@ -281,7 +355,11 @@ function is_payment_method_transfert_CIPF($user_id = null) { function is_payment_state_CIPF($type, $user_id = null) { Plgntls::debug_infos(); $acf_card_payment_state = Plgntls::ACF_CARD_PAYMENT_STATE; - return is_acf_state_CIPF($acf_card_payment_state, $type, $user_id); + if (is_null($user_id)) { + $user_id = get_current_user_id(); + } + $acf_id = 'user_'.$user_id; + return is_acf_state_CIPF($acf_card_payment_state, $type, $acf_id); } function is_payment_started_CIPF($user_id = null) { Plgntls::debug_infos(); @@ -305,7 +383,11 @@ function is_payment_nothing_CIPF($user_id = null) { function set_payment_state_CIPF($type, $user_id = null) { Plgntls::debug_infos(); $acf_card_payment_state = Plgntls::ACF_CARD_PAYMENT_STATE; - set_acf_state_CIPF($acf_card_payment_state, $type, $user_id); + if (is_null($user_id)) { + $user_id = get_current_user_id(); + } + $acf_id = 'user_'.$user_id; + set_acf_state_CIPF($acf_card_payment_state, $type, $acf_id); } function set_payment_started_CIPF($user_id = null) { Plgntls::debug_infos(); diff --git a/plugins/cipf_plugin/plgntls_class.php b/plugins/cipf_plugin/plgntls_class.php index ee696ec..8e84072 100644 --- a/plugins/cipf_plugin/plgntls_class.php +++ b/plugins/cipf_plugin/plgntls_class.php @@ -71,6 +71,7 @@ class Plgntls { const ACF_CARD_PAYMENT_STATE = ['_name'=>'etat_paiement', 'started'=>'en_cours', 'success'=>'reussi', 'failure'=>'echec', 'nothing'=>'aucun']; // radio button const ACF_ACCOUNT_STATE = ['_name'=>'etat_compte', 'new'=>'nouveau prof', 'to_pay'=>'doit payer', 'valid'=>'carte valide', 'waiting_invalid'=>'en attente invalide', 'waiting_valid'=>'en attente valide', 'expired'=>'carte expiree']; const ACF_TRANSFERT_STATE = ['_name'=>'etat_virement', 'success'=>'virement validé']; + const ACF_PAGE_STATE = ['_name'=>'etat_page_partenaire', 'publish'=>'Publiee', 'draft'=>'Brouillon']; // META const META_PAYEMENT_STATUS = 'cipf_payement_status'; @@ -91,6 +92,7 @@ class Plgntls { const URL_BASE_REST_ROUTE = 'cipf_plugin/api/v1'; // for routes, in php/paypal/routes.php && php/admin_modif_prof.php // QUERY + const QUERY_TOGGLE_PARTNER_PAGE = 'toggle_partner_page_cipf'; // PAYPAL const PAYPAL_SBOX_API_BASE_URL = "https://api-m.sandbox.paypal.com";