WordPress: Как да взема ID-то на потребителя от БД чрез стойностите в $_COOKIE[]?

TNTM

Member
Здравейте,

Имаме е-магазин, базиран на WordPress с инсталирано разширение WooCommerce. Опитвам се да интегрирам custom система за проследяване на трафика в реално време. Статистическият модул се намира на същия сървър, но е изготвен така, че да работи максимално автономно - проследяващият скрипт се извиква чрез изображение, вградено в изходния код.

Дотук добре - мога да виждам, какви страници зарежда посетителя по време на посещението и колко време стои на всяка от тях. Тъй като WordPress и статистическият модул са на един сървър, мога да получа и пълен достъп до хедърите от заявките на браузъра, вкл. Cookie-тата, генерирани динамично от WordPress по време на посещението (чрез пресявка на масива $_COOKIE[]). Теоретично имам и пълен достъп до таблиците в базата данни, но това не ми помага особено, доколкото не успявам да направя връзката между хешираните стойности в Cookie-тата и записите в базата данни.

Ядрото на WordPress е от типа "спагети код" и след близо 4 часа проследяване, тръгвайки от log-in формуляра и сблъсквайки се с безкраен низ от константи и обекти с глобално действие, трябва да призная, че стигнах до под кривата круша.

Някой има ли идея как, разполагайки само с хешираните стойности от $_COOKIE[] - масива, генериран по време на посещението, бих могъл да стигна до id-то на потребителя от потребителската таблица в базата данни?

По какъв начин се следят и съхранява информацията за потребителските действия, напр. добавяне на продукт в кошницата и как отново с помощта на данните от $_COOKIE[] да стигна до съответстващите записи в базата данни за добавените от потребителя продукти?
 

хейтър

Well-Known Member
Ядрото на WordPress е от типа "спагети код" и след близо 4 часа проследяване, тръгвайки от log-in формуляра и сблъсквайки се с безкраен низ от константи и обекти с глобално действие, трябва да призная, че стигнах до под кривата круша.
Не се рови в кода а се чете документацията.
тук са обяснени добре:
https://stackoverflow.com/a/19293221
Ако ти е малко багажа и не знаеш как да си вържеш WP-то с индийския си код ползвай това:
PHP:
function set_login_cookie($user_login, $user) {

        setcookie('some_cookie_name', $user->ID, 30 * DAY_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN);

}

add_action('wp_login', 'set_login_cookie', 10, 2);
 

ReminD

Well-Known Member
Така става, като ползваш блог система, която е натъкмена да работи като магазин, и понеже е лесна, codebase-a и е наблъскан с една камара мизерии за да е толкова удобна и всичко да става чрез плъгини и без да се пипа кода.
 

Горе