welcartが動いているWPサイトからcookieを共有する

cookie PHP

やりたいこと:welcartで運用しているWPサイトAでログインした際にWPサイトBにログインのステータスを表示させたい

1) サイトA site-a.domain.com が動いているサーバーでディレクトリの設定をする
apache2.conf

<Directory /var/www/directory >
Header set Access-Control-Allow-Origin "https://site-b.domain.com" // サイトBでcookieを受け取ることを許可する
Header set Access-Control-Allow-Credentials true
</Directory>

2) サイトAで渡したい情報をcookieへセットします。
functions.php
add_action( 'wp_headers', 'hoge');
function hoge() {
if (usces_is_login()){
$site-a-user-name = usces_the_member_name('return'); // ←welcartのログインユーザー名を取得
}
if (!isset($_COOKIE["site-a-user"])){
setcookie("site-a-user",$site-a-user-name, time() + 86400, "/", "site-b.domain.com"); // ←cookieをセットする時にこのcookieを参照できるサイトを指定する
}
}

setcookie関数は他の出力よりも前に処理される必要があるとのことなのでwp_headersへフックします
・5つ目のパラメータがcookieを使用できるドメインです

3) サイトB site-b.domain.com でcookieを取得する
function.phpfunction getcookie() {
$site-a-user = $_COOKIE['site-a-user'];
return $loginUser;}

・サイトBからは $_COOKIE でアクセスできます。

コメント

タイトルとURLをコピーしました