post_author); $current_user_id = (int)get_current_user_id(); if ($current_user_id !== $current_post_author_id) { return false; } return true; } /* * action to be done at the init state of the page * */ function partner_page_init_CIPF() { Plgntls::debug_infos(2); if (!is_partner()) { return; } Plgntls::debug_infos(); // https://developer.wordpress.org/reference/functions/get_query_var/#more-information global $wp; $wp->add_query_var('action'); } add_action('init','partner_page_init_CIPF'); /* * upload scripts and styles on partner page * */ function partner_page_scripts_CIPF() { Plgntls::debug_infos(2); /* * if on post, load css * - to hide partner own stuff * - for states * */ if (!is_single()) { return; } 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_own_partner_CIPF()) { return; } /* * on partner own page, load css to show own stuff * */ Plgntls::add_to_front(array('css/partner_page_own.css')); } 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(2); $toggle_partner_page = Cipf::QUERY_TOGGLE_PARTNER_PAGE; /* * check if : * - is own partner * - has query action * to check for 'action' query, add 'action' to query vars in 'init' hook * -> https://developer.wordpress.org/reference/functions/get_query_var/#more-information * */ if (!is_own_partner_CIPF()) { return; } Plgntls::debug_infos(); $is_action_toggle = get_query_var('action', false); if ($is_action_toggle !== $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'); wp_safe_redirect($url); exit; } add_action('template_redirect', 'toggle_partner_page_CIPF'); /* * if url uses post id : /?p=40772 * make redirects to its post_name version : /la-fipf * */ //function partner_page_check_url_CIPF() { // Plgntls::debug_infos(2); // if (!is_own_partner_CIPF()) { // return; // } // Plgntls::debug_infos(); // // /* // * get the post name // * // */ // $post_id = get_the_ID(); // $current_post = get_post($post_id); // if (is_null($current_post)) { // return; // } // // /* // * // * // $is_query_id = get_query_var('p', false); // if (false === $is_query_id) { // return; // } // else { // wp_safe_redirect(home_url($current_post->post_name)); // } // */ // $current_url = untrailingslashit(get_permalink()); // if (false === $current_url) { // return; // } // $url = untrailingslashit(home_url($current_post->post_name)); //global $wp; //error_log("wp: " . json_encode($wp)); //error_log("wp->request: " . json_encode($wp->request)); //error_log("url: " . json_encode($url)); //error_log("current_url: " . json_encode($current_url)); //error_log("current_post->post_name: " . json_encode($current_post->post_name)); // if ($url !== $current_url) { // wp_safe_redirect(home_url($current_post->post_name)); // exit; // } //} //add_action('template_redirect', 'partner_page_check_url_CIPF'); /* * early checks on partner page * */ function page_partner_check_CIPF() { Plgntls::debug_infos(2); // is partner own page if (!is_own_partner_CIPF()) { 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); ?>