Вопрос: Кнопка Wordpress Userroles становится кэшированной

У меня на сайте разные кнопки для разных пользователей, я использовал приведенный ниже код для их создания.

<?php     global $user_login, $current_user;    get_currentuserinfo();    $user_info = get_userdata($current_user->ID);    $roles = array (        'administrator',        'daily',        'monthly',        'unlimited',    );    $roles_expired = array (        'expired',    );if (is_user_logged_in() && array_intersect( $roles, $user_info->roles)) {echo Button 1; } else if (is_user_logged_in() && array_intersect( $roles_expired, $user_info->roles)) {    echo 'Button2';}else {  echo 'Button3';}?>  

Код у меня работает, но когда я включаю кэширование (используя w3-total-cache) на веб-сайте, кнопка также кэшируется для разных пользовательских ролей?

есть ли лучший способ реализовать это? Пожалуйста, помогите мне

Спасибо и С уважением, и РК

Ответы и комментарии:

Большое спасибо Крис, есть ли другой метод, потому что, когда я начал использовать cloudflare, возникла та же проблема,
Создан 10-08-2017 12:17 Anand Rk

Я знаю, что вы можете обойти всю страницу с помощью Cloudflare, используя правила страницы, но я не знаю, как обойти их с помощью динамических фрагментов.
Создан 10-08-2017 12:21 Chris Cox

Если это на определенной странице, вы можете исключить кэширование страницы в разделе «Производительность»> «Кэш страницы»> «Дополнительно».
Если он есть на каждой странице, вам нужно включить кэширование фрагментов. Установите метод «Диск: базовый» и включите «Поздняя инициализация» в разделе «Производительность»> «Кэш страницы»> «Дополнительно». Установите следующую константу в вашем wp-config.php:
define ('W3TC_DYNAMIC_SECURITY', md5 (rand (0, 999999)));

Затем оберните любые разделы, которые вы не хотите кэшировать, следующим образом:
->

<? php // ваш код динамической кнопки здесь?>

->
Создан 10-08-2017 12:20 Chris Cox1,0871614