Files
2024_WEBSITE_fipf/plugins/cipf_plugin/php/profs_form.php

170 lines
3.7 KiB
PHP

<?php
/*
* it means someone outside wp is accessing the file, in this case kill it.
*/
if (!defined('ABSPATH')) {
die('You can not access this file!');
}
/*
* actions after prof form is validated
*
*/
function prof_after_form_CIPF($form_id, $post_array, $form_type) {
PLGNTLS_class::debug_infos();
$acf_cgv = PLGNTLS_class::ACF_PROF_CGV;
$acf_account_state = PLGNTLS_class::ACF_ACCOUNT_STATE;
$user_id = get_current_user_id();
$acf_id = 'user_'.$user_id;
/*
* reset cgv
*
*/
update_field($acf_cgv['_key'], array(""), $acf_id);
/*
* 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 (is_payment_method_paypal_CIPF()) {
if (is_account_new_CIPF()) {
set_account_to_pay_CIPF();
}
if (is_account_expired_CIPF()) {
set_account_to_pay_CIPF();
}
}
else if (is_payment_method_transfert_CIPF()) {
if (is_account_expired_CIPF()) {
set_account_waiting_invalid_CIPF();
}
else if (is_account_valid_CIPF()) {
set_account_waiting_valid_CIPF();
}
}
}
add_action('df_after_process', 'prof_after_form_CIPF', 10, 3);
/*
* on renew page :
* - check restrictions
* - change some acf fields (if access granted)
*
* prevent users to fill the renew form if :
* - they are not prof and logged in,
* - and if their card is not in renewable state
* - except admins and editor
*
*/
function prof_form_restrictions_CIPF(){
PLGNTLS_class::debug_infos();
$slug_renew_card = PLGNTLS_class::SLUG_RENEW_CARD;
$slug_page_redirection = PLGNTLS_class::SLUG_PAGE_REDIRECTION;
$role_prof = PLGNTLS_class::ROLE_PROF;
$role_fipf = PLGNTLS_class::ROLE_FIPF;
$role_admin = PLGNTLS_class::ROLE_ADMIN;
$base_url = home_url();
wp_reset_query();
if (!is_page('commande'))
return;
/*
* is it good ?
* -> dont' redirect if user not logged in, because new users need to acces this page
*
if (!is_user_logged_in()) {
// Set up nocache headers before redirecting : https://developer.wordpress.org/reference/functions/wp_safe_redirect/#user-contributed-notes
nocache_headers();
wp_redirect($base_url, 301);
exit;
}
*/
$current_user_id = get_current_user_id();
$current_user = wp_get_current_user();
$acf_id = 'user_'.$current_user_id;
/*
* check multiple user roles
* https://developer.wordpress.org/reference/functions/current_user_can/#div-comment-4083
*
$allowed_roles = array($role_admin, $role_fipf, $role_prof);
if (!array_intersect($allowed_roles, $current_user->roles))
return;
*/
/*
* if prof, check card state
* if cannot renew, redirect
*
if (current_user_can($role_prof)) {
$can_renew = get_field($acf_prof_can_renew['_name'], $acf_id);
if ($can_renew === false) {
// 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;
}
}
*/
}
add_action('template_redirect', 'prof_form_restrictions_CIPF');
/*
* enqueue scripts and styles on page prof
*
* on the renew card page for prof
* output the right message, depending of the status of the card
* 'renouveler' or 'commander'
*
* #cipf_prof_carte_commande -> default display: block;
* #cipf_prof_carte_renouvellement -> default display: none;
*
*/
function renew_page_filter_message_CIPF(){
PLGNTLS_class::debug_infos();
$slug_renew_card = PLGNTLS_class::SLUG_RENEW_CARD;
$acf_card_state = PLGNTLS_class::ACF_CARD_STATE;
if (!is_page($slug_renew_card))
return;
$user_id = get_current_user_id();
display_page_css_CIPF($user_id);
}
add_action('wp_enqueue_scripts', 'renew_page_filter_message_CIPF');
?>