Я пытаюсь добавить пользовательский файл cookie на свой сайт Wordpress, и у меня возникают некоторые проблемы. Я отыскал последнее возможное место для вставки моего куки-файла перед отправкой заголовков, что, по-видимому, находится перед последней строкой в моем wp-config.php
Поэтому я бросил require_once ('path / to / cookie.php') в конец моего wp-config.php и смог установить cookie. Вупи. Но уникальный идентификатор каждого файла cookie должен храниться в моей базе данных. Поэтому я вызвал wp-load.php, чтобы у меня была глобальная переменная $ wpdb, а затем начал пытаться выполнять запросы. 500 ошибок предостаточно. Чего мне не хватает?
Вот конец моего wp-config.php
/* That's all, stop editing! Happy blogging. */
/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
/** Sets up WordPress vars and included files. */
require_once(ABSPATH . '/wp-content/plugins/myPlugin/cookie.php');
require_once(ABSPATH . 'wp-settings.php');
А вот cookie.php
$path = $_SERVER['DOCUMENT_ROOT'];
require_once $path . '/wp-load.php';
function rand_string( $length ) {
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$size = strlen( $chars );
for( $i = 0; $i < $length; $i++ ) {
$str .= $chars[ rand( 0, $size - 1 ) ];
}
return $str;
}
function check_id($id){
global $wpdb;
$results = $wpdb->get_results("SELECT id FROM visitors WHERE userid = '$id'");
if(mysqli_num_rows($results) > 0){
return false;
} else {
return true;
}
}
if(!isset($_COOKIE['visitor'])){
$key = false;
while($key == false){
if(check_id($userid = rand_string(32))){
$key = true;
}
}
setcookie("visitor", $userid, time() + ((86400 * 30)*12), "/", "site.com");
}