Я пишу плагін WordPress, де у мене є короткий код. Цей короткий код формує та обробляє форму. Після надсилання форми значення зберігається у файлі cookie з:
$result = setCookie("cookieName","cookieValue");
Потім результат повертає помилковий, тобто файл cookie не встановлений. Це не дивно, оскільки заголовки вже надсилаються під час виконання короткого коду. Я шукаю спосіб вирішити цю проблему.
Тут я знайшов кілька подібних питань. Більшість відповідей були: встановити файли cookie раніше, але це для мене насправді не варіант.
Єдине, про що я міг придумати, - це вихідбуферизація всього, але я не впевнений, що це правильний спосіб зробити це у wordpress (який гачок, як зберегти речі, сумісні з іншими плагінами тощо). Мені також цікаво, чи є вбудоване рішення, оскільки мені здається, що я не буду єдиним із цією проблемою.
Відповіді:
0 для відповіді № 1Так, дизайн WP не дозволяє цього зробити. Якщо використання ранньої дії на зразок "init" не підходить, єдине, про що я можу подумати - це зробити дзвінок AJAX, де для цього нормально використовувати setcookie для зворотного дзвінка, а також JavaScript може встановлювати файли cookie безпосередньо.
Якщо вам абсолютно потрібно обчислити це взворотний виклик короткого коду, то, можливо, ви можете спершу щось зберегти в $ _SESSION або прихованій формі або атрибуті даних і пізніше помістити його у файл cookie (використовуючи дію "init" або передаючи значення в javascript і використовуючи це для створення печиво)
0 для відповіді № 2
ну я просто написав відповідь на інше запитання, я сподіваюся, що це може найкраще визначити, як і де написати файл cookie, який ви хочете використовувати в короткому коді.
потрібен правильний спосіб встановити cookie в wordpress