Почему мой промежуточный поддомен не отправляет зарегистрированные файлы cookie wordpress?


У нас есть пользовательский плагин для входа и создания учетной записи. Это прекрасно работает в нашей живой среде (example.com), но не в нашей промежуточной среде (test.example.com).

Когда мы вызываем wp_insert_user с помощью функции AJAX, она успешно создает пользователя и возвращает его идентификатор. wp_signon также, похоже, работает. Но в обоих случаях пользователь фактически не входит в промежуточную среду.

Просмотрев инструменты разработчика Chrome, я понял, что живая среда отправляет set-cookie: wordpress_logged_in_... как и должно быть, но промежуточная среда - нет.

В журнале ошибок об этом ничего нет, и это произойдет, если мы отключим все другие наши плагины в промежуточной среде.

Что может быть причиной этого? Как мы можем заставить его отправлять файлы cookie для входа, как это должно быть?

Author: fuxia, 2018-12-14

1 answers

Я заметил, что промежуточная среда имела различное содержимое в своем wp-config.php и файлы .htaccess. Я изменил их, чтобы они были ближе к тем, что были в живой среде.

Находясь там, я заметил, что некоторые отличия в содержимом были связаны с различными плагинами кэширования, которые мы ранее установили в промежуточной среде. В отчаянии Я переустановил все эти плагины через wp-admin, а затем удалил их.

Удивительно, но это исправлено проблема с тем, что файлы cookie не отправляются. Однако файлы cookie содержали неправильные пути или домены. После некоторых проб и ошибок я, наконец, заставил его работать, добавив эти семь строк в wp-config.php:

define('ADMIN_COOKIE_PATH', '/wp-admin');
define('COOKIE_DOMAIN', '');
define('COOKIEPATH', '/');
define('SITECOOKIEPATH', '/');
define('DOMAIN_CURRENT_SITE', 'test.example.com');
define('WP_HOME','https://test.example.com');
define('WP_SITEURL','https://test.example.com');

Я предполагаю, что один или несколько плагинов кэширования не очистились после себя, когда мы его удалили.

 1
Author: Pikamander2, 2018-12-14 12:06:29