2016-12-07 2 views
1

Я пытаюсь установить всплывающее окно для подписки на рассылку новостей в WooCommerce Shop Page Только с использованием Cookie.
Проблема: Установка куки в Wordpress должно быть сделано в functions.php, в котором условные теги не будут работать, как указано здесь: https://docs.woocommerce.com/document/conditional-tags/Показать всплывающее окно только на странице woocommerce

Любое предложение?
Благодаря

+0

Что вы пытаетесь? Условная логика не будет работать, если она написана прямо в 'functions.php' (поскольку объект запроса не настроен до' wp_query'), но будет работать, если вызывается на любом крючке на странице магазина ... например 'woocommerce_sidebar' или другие. – helgatheviking

ответ

1

Если вы хотите, чтобы показать всплывающее окно или хотите добавить любой сценарий к магазину странице только , то вы должны использовать is_shop() условный тег в wp_head или wp_footer действия.

Попробуйте этот код

function subscription_footer() 
{ 
    //for shop page only 
    if (is_shop()) 
    { 
     //if cookie does not exist/set then perform your stuff. 
     if (!isset($_COOKIE['shop_subscribe'])) 
     { 
      setcookie('shop_subscribe', 'yes', time() + (86400 * 30)); // 86400 = 1 day 
      $_COOKIE['shop_subscribe'] = 'yes'; 
      //here you can write your html/js code for popup. 
     } 
    } 
    //print_r($_COOKIE); 
} 

add_action('wp_footer', 'subscription_footer'); 

Этот код идет в function.php файл вашей активной темы ребенка (или темы) или же в любом файле плагина.

Смежные вопросы