немного странная проблема, которую я не мог решить в течение нескольких месяцев, поэтому я, наконец, сдался и пришел сюда за ответом. Надеюсь.
У меня есть короткий код, который при запуске возвращает номер телефона в зависимости от того, какая переменная имеет значение. Этот код PHP работает так, как ожидалось, но единственное, что не работает должным образом, - это первая загрузка страницы.
Когда кто-то заходит на сайт впервые (или в режиме инкогнито) шорткод ничего не выводит, однако, обновите sh страницу только один раз, и она отобразит вывод правильного значения, и я не знаю почему.
<?php function gw_cookie($atts) {
extract(shortcode_atts(array(
"value" => ''
), $atts));
$getVariable = isset($_GET[$value]) ? $_GET[$value] : '';
$newGetVariable = str_replace('_', ' ', $getVariable);
$cookiePhone = isset($_COOKIE[$value]) ? $_COOKIE[$value] : '';
$acfField = get_field('page_cookie_'.$value.'');
$optionsACF = get_field('options_company_details', 'options');
$area = $optionsACF['options_area'];
$phone = $optionsACF['options_telephone'];
if(!empty($cookiePhone) && $cookiePhone !== 'undefined') { //If cookie is not empty do the following
echo '1';
} elseif(!empty($newGetVariable)) { //If cookie is empty and get variable is not
echo '2';
} elseif($acfField) { //If ACF field is not empty do the following
echo '3';
} elseif ($value == "phone") {
return '4';
}
} add_shortcode("gw-cookie", "gw_cookie");
Этот файл кодов импортируется в файл functions. php, используя следующую строку:
require_once( __DIR__ . '/shortcodes/gw-cookies.php' );