diff --git a/plugins/cipf_plugin/fipfcard_plugin.php b/plugins/cipf_plugin/cipf_plugin.php similarity index 72% rename from plugins/cipf_plugin/fipfcard_plugin.php rename to plugins/cipf_plugin/cipf_plugin.php index b6a2932..62f1ade 100644 --- a/plugins/cipf_plugin/fipfcard_plugin.php +++ b/plugins/cipf_plugin/cipf_plugin.php @@ -36,19 +36,15 @@ include_once(PLGNTLS_class::root_path() . 'php/admin_menu/example_menu.php'); include_once(PLGNTLS_class::root_path() . 'php/paypal/paypal.php'); -include_once(PLGNTLS_class::root_path() . '/php/user_infos.php'); include_once(PLGNTLS_class::root_path() . '/php/hide_admin.php'); //include_once(PLGNTLS_class::root_path() . '/php/menus.php'); -include_once(PLGNTLS_class::root_path() . 'php/register_partenaires.php'); include_once(PLGNTLS_class::root_path() . 'php/redirections.php'); include_once(PLGNTLS_class::root_path() . 'php/author_restriction.php'); -//include_once(PLGNTLS_class::root_path() . 'php/filter_mail.php'); -include_once(PLGNTLS_class::root_path() . 'php/prof_check_page.php'); -include_once(PLGNTLS_class::root_path() . 'php/renew_card.php'); +include_once(PLGNTLS_class::root_path() . 'php/profs_profil.php'); +include_once(PLGNTLS_class::root_path() . 'php/profs_form.php'); //include_once(PLGNTLS_class::root_path() . 'php/reset_card_form.php'); -include_once(PLGNTLS_class::root_path() . 'php/partner_check_page.php'); -include_once(PLGNTLS_class::root_path() . 'php/format_user_infos.php'); -include_once(PLGNTLS_class::root_path() . 'php/admin_modif_prof.php'); +include_once(PLGNTLS_class::root_path() . 'php/partners_register.php'); +include_once(PLGNTLS_class::root_path() . 'php/partners_page.php'); // form builder patch : diff --git a/plugins/cipf_plugin/php/admin_modif_prof.php b/plugins/cipf_plugin/php/admin_modif_prof.php deleted file mode 100644 index 6100caf..0000000 --- a/plugins/cipf_plugin/php/admin_modif_prof.php +++ /dev/null @@ -1,342 +0,0 @@ - the filter is not called in most cases, if user is instance of WP_USER -*/ -//function filter_user_id_CIPF($id) { -// PLGNTLS_class::debug_infos(); -// error_log("-in filter_user_id_CIPF, id : " . $id); // this is not output -// return 117; -//} -//function add_filter_for_user_id_CIPF($wp) { -// PLGNTLS_class::debug_infos(); -// error_log("-in add_filter_for_user_id_CIPF"); // this is output -// add_filter('determine_current_user', 'filter_user_id_CIPF', 10, 1); -//} -//add_shortcode('cipf_change_meta_id', 'add_filter_for_user_id_CIPF'); -////add_action('wp', 'add_filter_for_user_id_CIPF'); - - - - - -/* -* version 2 : -* -* adding a filter on the page to alter the id used by the get_metadata function -* because it seems it is the function used by formBuilder to retrieve the fields -* -> in divi-for-builder/includes/modules/FormField/FormField.php line 5319 : $user_metadata = get_user_meta( $current_user->ID, '', true ); -* -> in wp-includes/meta.php line 635 -* -* somehow it makes the function get_user_metadata returns nothing -* -*/ -//function filter_user_id_CIPF($null, $object_id, $meta_key, $single, $meta_type ) { -// PLGNTLS_class::debug_infos(); -// error_log("---"); -// error_log("-object_id"); -// error_log(json_encode($object_id)); -// error_log("-meta_key"); -// error_log(json_encode($meta_key)); -// error_log("-single"); -// error_log(json_encode($single)); -// error_log("-meta_type"); -// error_log(json_encode($meta_type)); -// -// $object_id = 117; -// -// /* -// * I just copied the code of wordpress : -// * i'm not sure there is a better way -// * -// */ -// $meta_cache = wp_cache_get( $object_id, $meta_type . '_meta' ); -// -// if ( ! $meta_cache ) { -// $meta_cache = update_meta_cache( $meta_type, array( $object_id ) ); -// if ( isset( $meta_cache[ $object_id ] ) ) { -// $meta_cache = $meta_cache[ $object_id ]; -// } else { -// $meta_cache = null; -// } -// } -// -// if ( ! $meta_key ) { -// return $meta_cache; -// } -// -// if ( isset( $meta_cache[ $meta_key ] ) ) { -// if ( $single ) { -// return maybe_unserialize( $meta_cache[ $meta_key ][0] ); -// } else { -// return array_map( 'maybe_unserialize', $meta_cache[ $meta_key ] ); -// } -// } -// /* -// * FIN copy -// */ -//} -//function add_filter_for_user_id_CIPF($wp) { -// PLGNTLS_class::debug_infos(); -// add_filter('get_user_metadata', 'filter_user_id_CIPF', 10, 5); -//} -//add_action('wp', 'add_filter_for_user_id_CIPF'); - - - - - - -/* -* version 1: -* -* adding a shortcode to change the behavior of acf retrieval mechanism -* by changing the filter acf/pre_load_post_id that find the id acf will use -* for all the functions like get_field(), get_field_object(), etc -* it works, but formBuilder don't use acf functions :p -* -* [cipf_choose_acf_id] -> nothing happens -* [cipf_choose_acf_id logged_in] -> the next acf ids will be of the logged-in user -* [cipf_choose_acf_id post_creator] -> the next acf ids will be of the creator of the post -* (for the moment, only for author page) -* [cipf_choose_acf_id off] -> stop the use of specials ids -* -*/ -//function test_acf_CIPF($acf_id, $id) { -// PLGNTLS_class::debug_infos(); -// error_log("acf_id: " . $acf_id . ", id : " . $id); -// if ($id === null) { -// return null; -// } -// return 'user_'.$id; -//} -// -//function choose_acf_id_CIPF($options) { -// PLGNTLS_class::debug_infos(); -// -// $option = reset($options); -// if (!is_string($option)) { -// return; -// } -// -// if ($option === 'logged_in') { -// $id = get_current_user_id(); -// } -// else if ($option === 'post_creator') { -// $id = get_queried_object_id(); -// } -// else if ($option === 'off') { -// $id = null; -// } -// else -// return; -// -// /* -// * this filter is called by acf to find the id to use -// * with functions like get_field() -// * -// */ -// add_filter('acf/pre_load_post_id', function($null, $acf_id) use ($id) { -// return test_acf_CIPF($acf_id, $id); -// }, 10, 2); -//} -//add_shortcode('cipf_choose_acf_id', 'choose_acf_id_CIPF'); - - - - - - - - - - - - - - - - - - - - - -/* -* ABANDONNED -* -* FIRST TRY : HANDLE THE FORM SUBMIT -* -* not always simple to get the id of the author -* anyway it does not help to show the acf values on form -* -*/ - - - - -/* -* custom action in php on custom form submission -* custom forms are not processed by divi form builder -* so they don't change between hooks before and after process -* -*/ -//function admin_validate_prof_CIPF($data) { -// PLGNTLS_class::debug_infos(); -// $acf_prof_is_activ = PLGNTLS_class::ACF_PROF_IS_ACTIV; -// -// if (empty($data)) -// redirection_profil_CIPF(); -// -// error_log("---"); -// error_log("data"); -// error_log(json_encode($data)); -// -// if (!isset($data[$acf_prof_is_activ['_name']])) -// redirection_profil_CIPF(); -// -// $is_activ = $data[$acf_prof_is_activ['_name']]; -// error_log("is_activ"); -// error_log($is_activ); -//} - - - - - -/* -* version 4 : -* calling the action to validate from the url path and/or query -* -*/ -//function url_custom_form_admin_validate_prof_CIPF() { -// PLGNTLS_class::debug_infos(); -// $slug_admin_validate_prof = PLGNTLS_class::SLUG_ADMIN_VALIDATE_PROF; -// -// if (!isset($_GET['q'])) -// return; -// -// /* -// * check the request /path/ -// * for url : https://url.com/path/to/file/?query=value -// * -> $_GET: {"q":"/path/to/file/","query":"value"} -// * -// */ -// $get_path = trim($_GET['q'], '/'); -// if ($get_path !== $slug_admin_validate_prof) -// return; -// -// admin_validate_prof_CIPF($_POST); -//} -//add_action('init', 'url_custom_form_admin_validate_prof_CIPF'); - - - - -/* -* version 3 : -* calling the action to validate from the FormBuilder hook -* -*/ -//function custom_form_admin_validate_prof_CIPF($form_id, $post_array, $form_type) { -// PLGNTLS_class::debug_infos(); -// $admin_validate_prof_field = PLGNTLS_class::ADMIN_VALIDATE_PROF_FIELD; -// -// if ($form_type !== 'custom') -// return; -// -// $field_id = $post_array['field_id']; -// $contains_id = in_array($admin_validate_prof_field, $field_id); -// if ($contains_id === false) -// return; -// -// admin_validate_prof_CIPF($post_array); -//} -//add_action('df_before_process', 'custom_form_admin_validate_prof_CIPF', 10, 3); - - - - - -/* -* version 2 : ABANDONNED -* tried to receive the form in ajax from front with wp REST API -* but I cannot verify if the user is logged in -* so it does not work -* -*/ -//function admin_validate_prof_form_CIPF($request) { -// PLGNTLS_class::debug_infos(); -// $slug_page_redirection = PLGNTLS_class::SLUG_PAGE_REDIRECTION; -// -// error_log("-----"); -// error_log("inside admin_validate_prof_form_CIPF"); -// error_log("request"); -// error_log(json_encode($request)); -// error_log("_POST"); -// error_log(json_encode($_POST)); -// // _POST : {"field_title":["\u00c9tat du compte"],"field_name":["compte-actif"],"field_id":["cipf_admin_activate_prof"],"form_key":"40781-1","unique_id":"91eed9aa-2b92-4da7-a0b4-e94f24515223","form_type":"custom","divi-form-submit":"yes","form_id":"","form_type_confirm":""} -// -// // Set up nocache headers before redirecting : https://developer.wordpress.org/reference/functions/wp_safe_redirect/#user-contributed-notes -// nocache_headers(); -// $redirect_url = home_url() . '/' . $slug_page_redirection; -// wp_redirect($redirect_url, 301); -// exit; -//} -//function endpoint_form_admin_activate_prof_CIPF() { -// PLGNTLS_class::debug_infos(); -// $base_rest_route = PLGNTLS_class::URL_BASE_REST_ROUTE; -// -// register_rest_route($base_rest_route, '/admin_prof_activate_form', array( -// 'methods' => 'POST', -// 'callback' => 'admin_validate_prof_form_CIPF', -// )); -//}; -//add_action('rest_api_init', 'endpoint_form_admin_activate_prof_CIPF'); - - - - -/* -* version 1 : ABANDONNED -* enqueue script that should prevent the form to submit, but does not work -* -*/ -//function admin_validate_prof_prevent_CIPF() { -// PLGNTLS_class::debug_infos(); -// $handle = 'admin_prevent_submit'; -// $url = PLGNTLS_class::root_url() . 'js/admin_prevent_submit.js'; -// $dependencies = array(); -// $version = null; -// $defer = true; -// wp_enqueue_script($handle, $url, $dependencies, $version, $defer); -//} -//add_action('wp_enqueue_scripts', 'admin_validate_prof_prevent_CIPF'); - - - - - -?> diff --git a/plugins/cipf_plugin/php/filter_mail.php b/plugins/cipf_plugin/php/filter_mail.php deleted file mode 100644 index f655e0f..0000000 --- a/plugins/cipf_plugin/php/filter_mail.php +++ /dev/null @@ -1,140 +0,0 @@ -$$ - * - */ - if (empty($result)) - return $matches[0]; - - return $result; -} - - -/* -* filter emails in the form-builder hook, before the wp_mail hook -* it receives the id of the user, no need to have the user still logged-in -* -*/ -function filter_email_fb_CIPF($reply_body, $post_array) { - PLGNTLS_class::debug_infos(); - $id = $post_array['ID']; - // pattern : anything surrounded by '$$', ex : $$value$$ - $pattern = '/\$\$(.*?)\$\$/'; - - // inline callback, with 'use' to get the id - $new_body = preg_replace_callback($pattern, function($matches) use ($id) { - return replace_words_CIPF($matches, $id); - }, $reply_body); - - return $new_body; -} -add_filter('df_confirmation_body', 'filter_email_fb_CIPF', 10, 2); // the receive an email -add_filter('df_notification_body', 'filter_email_fb_CIPF', 10, 2); // the admin receive a notification - - - - - -/* -* filter emails at the final point : the wp_mail hook -* it uses a callback that rely on the logged-in user -* it will works well most of the time, but it's possible -* that a user logged out before the email is sent -* or event that a different user has already logged in -*/ -function filter_email_wp_CIPF($args) { - PLGNTLS_class::debug_infos(); - // pattern : anything surrounded by '$$', ex : $$value$$ - $pattern = '/\$\$(.*?)\$\$/'; - - $old_body = $args['message']; - $new_body = preg_replace_callback($pattern, 'replace_words_CIPF', $old_body); - $args['message'] = $new_body; - - return $args; -} -add_filter('wp_mail', 'filter_email_wp_CIPF', 10, 1); - - - -/* - -all filters in form_builder : - -1 $body = apply_filters( 'df_notification_body', $body, $post_array ); -2 $email = apply_filters( 'df_notifcation_recipient', $email, $form_id, $post_array ); -3 $title = apply_filters( 'wpml_translate_single_string', $title_get, 'divi-form-builder', 'Edit Post Button Title Text' ); - -4 $body = apply_filters( 'df_contact_body', $body, $post_array ); -5 $body = apply_filters( 'df_contact_body', $body, $post_array ); - -6 $email = apply_filters( 'df_contact_recipient', $email, $form_id, $post_array ); -7 $email = apply_filters( 'df_contact_recipient', $email, $form_id, $processed_post_array ); - -8 $reply_body = apply_filters( 'df_confirmation_body', $reply_body, $post_array ); -9 $reply_body = apply_filters( 'df_confirmation_body', $reply_body, $post_array ); -10 $reply_body = apply_filters( 'df_confirmation_body', $reply_body, $post_array ); -11 $reply_body = apply_filters( 'df_confirmation_body', $reply_body, $post_array ); - -12 $message_content = apply_filters( 'the_content', get_post_field( 'post_content', $message_array['layout'] ) ); -13 $content = apply_filters( 'the_content', get_post_field( 'post_content', $message_array['layout'] ) ); -14 $content = apply_filters( 'the_content', get_post_field( 'post_content', $html_content_divi_layout) ); - -*/ - - - -?> diff --git a/plugins/cipf_plugin/php/format_user_infos.php b/plugins/cipf_plugin/php/format_user_infos.php deleted file mode 100644 index 1670ac1..0000000 --- a/plugins/cipf_plugin/php/format_user_infos.php +++ /dev/null @@ -1,96 +0,0 @@ -$_acf_field; - if (!empty($acf_field)) - $is_acf = true; - */ - - /* - * check if it's an acf field, and a date - * second method : check what get_field_object() returns - * - */ - $acf_id = 'user_'.$user_id; - $acf_object = get_field_object($query, $acf_id); - if ($acf_object !== false) - $is_acf = true; - - - /* - * if is acf, use the acf return format - * otherwise, use the default wordpress value - * - */ - if ($is_acf) - $output = get_field($query, $acf_id); - else - $output = $current_user->$query; - - - - /* - * try to extract a string - * - */ - while (is_array($output) && count($output) === 1) - $output = reset($output); - - - - /* - * if is not acf - * check if is a date - * and format it - * to create a DateTime from a time stamp : https://stackoverflow.com/a/12039058/9497573 - * - */ - if (!$is_acf) { - $timestamp = false; - if (is_string($output)) { - $timestamp = strtotime($output); - } - if ($timestamp !== false) { - $date = new DateTime('@' . $timestamp); - $output = $date->format($output_date_format); - } - } - - - - /* - * return the result - * - */ - if (is_array($output) && count($output) === 0) - $output = ''; - if (!is_string($output)) - $output = json_encode($output, JSON_UNESCAPED_SLASHES); - return esc_html($output); -} - - - - - -?> diff --git a/plugins/cipf_plugin/php/partner_check_page.php b/plugins/cipf_plugin/php/partners_page.php similarity index 100% rename from plugins/cipf_plugin/php/partner_check_page.php rename to plugins/cipf_plugin/php/partners_page.php diff --git a/plugins/cipf_plugin/php/register_partenaires.php b/plugins/cipf_plugin/php/partners_register.php similarity index 100% rename from plugins/cipf_plugin/php/register_partenaires.php rename to plugins/cipf_plugin/php/partners_register.php diff --git a/plugins/cipf_plugin/php/renew_card.php b/plugins/cipf_plugin/php/profs_form.php similarity index 67% rename from plugins/cipf_plugin/php/renew_card.php rename to plugins/cipf_plugin/php/profs_form.php index 679d20a..098ad35 100644 --- a/plugins/cipf_plugin/php/renew_card.php +++ b/plugins/cipf_plugin/php/profs_form.php @@ -11,6 +11,63 @@ if (!defined('ABSPATH')) { +/* +* when form is validated, reset some fields +* +*/ +function prof_form_reset_fields_CIPF($form_id, $post_array, $form_type) { + PLGNTLS_class::debug_infos(); + $acf_cgv = PLGNTLS_class::ACF_PROF_CGV; + + $user_id = get_current_user_id(); + update_field($acf_cgv['_name'], array(""), 'user_'.$user_id); +} +//add_action('df_before_process', 'prof_form_reset_fields_CIPF', 10, 3); +add_action('df_after_process', 'prof_form_reset_fields_CIPF', 10, 3); + + + + + + +/* +* +* NOT USEFUL ANYMORE : +* it was to fix pbms in formbuilder with calculation field +* but I made 2 better fixes (css and js) +* +* reset some fields for the form to buy the card +* - cgv +* - paiement +* - livraison +* - tarif +* this action is called after redirection hook +* +*/ +//function reset_some_fields_CIPF() { +// PLGNTLS_class::debug_infos(); +// $slug_renew_card = PLGNTLS_class::SLUG_RENEW_CARD; +// $acf_cgv = PLGNTLS_class::ACF_PROF_CGV; +// $acf_payement = PLGNTLS_class::ACF_CARD_PAYMENT_METHOD; +// $acf_delivery = PLGNTLS_class::ACF_CARD_PRICE_DELIVERY; +// $acf_price = PLGNTLS_class::ACF_CARD_PRICE_CHOICE; +// +// if (!is_page($slug_renew_card)) +// return; +// +// $user_id = get_current_user_id(); +// update_field($acf_cgv['_name'] , array(""), 'user_'.$user_id); +// update_field($acf_payement['_name'], array(""), 'user_'.$user_id); +// update_field($acf_delivery['_name'], array(""), 'user_'.$user_id); +// update_field($acf_price['_name'] , array(""), 'user_'.$user_id); +//} +//add_action('wp', 'reset_some_fields_CIPF'); + + + + + + /* * on renew page : * - check restrictions diff --git a/plugins/cipf_plugin/php/prof_check_page.php b/plugins/cipf_plugin/php/profs_profil.php similarity index 100% rename from plugins/cipf_plugin/php/prof_check_page.php rename to plugins/cipf_plugin/php/profs_profil.php diff --git a/plugins/cipf_plugin/php/reset_card_form.php b/plugins/cipf_plugin/php/reset_card_form.php index 02214d8..a0c33ab 100644 --- a/plugins/cipf_plugin/php/reset_card_form.php +++ b/plugins/cipf_plugin/php/reset_card_form.php @@ -11,38 +11,6 @@ if (!defined('ABSPATH')) { -/* -* -* NOT USEFUL ANYMORE : -* it was to fix pbms in formbuilder with calculation field -* but I made 2 better fixes (css and js) -* -* reset some fields for the form to buy the card -* - cgv -* - paiement -* - livraison -* - tarif -* this action is called after redirection hook -* -*/ -function reset_some_fields_CIPF() { - PLGNTLS_class::debug_infos(); - $slug_renew_card = PLGNTLS_class::SLUG_RENEW_CARD; - $acf_cgv = PLGNTLS_class::ACF_PROF_CGV; - $acf_payement = PLGNTLS_class::ACF_CARD_PAYMENT_METHOD; - $acf_delivery = PLGNTLS_class::ACF_CARD_PRICE_DELIVERY; - $acf_price = PLGNTLS_class::ACF_CARD_PRICE_CHOICE; - - if (!is_page($slug_renew_card)) - return; - - $user_id = get_current_user_id(); - update_field($acf_cgv['_name'] , array(""), 'user_'.$user_id); - update_field($acf_payement['_name'], array(""), 'user_'.$user_id); - update_field($acf_delivery['_name'], array(""), 'user_'.$user_id); - update_field($acf_price['_name'] , array(""), 'user_'.$user_id); -} -add_action('wp', 'reset_some_fields_CIPF'); diff --git a/plugins/cipf_plugin/php/user_infos.php b/plugins/cipf_plugin/php/user_infos.php deleted file mode 100644 index f270da1..0000000 --- a/plugins/cipf_plugin/php/user_infos.php +++ /dev/null @@ -1,170 +0,0 @@ - $value2) { - $value = extract_if_array_size_one_CIPF($value2); - // if key was not in first array, add the new element to it - if (!isset($new_array[$key2])) { - $new_array[$key2] = $value2; - continue; - } - // if key was in first array, add both in an array - $value1 = extract_if_array_size_one_CIPF($new_array[$key2]); - if (empty($value1)) - $new_array[$key2] = $value2; - else if (empty($value2)) - $new_array[$key2] = $value1; - else { - $new_value = array($value1, $value2); - $new_array[$key] = $new_value; - } - } - return $new_array; -} - - -function output_list_front_CIPF($array, $current_user, $user_id) { - PLGNTLS_class::debug_infos(); - $output = '