先日、Welcart会員ユーザーがログインした際に同時にWordPressユーザーを登録する方法を書きましたが、Welcartからログアウトする際にもWordPressユーザーも同時にログアウトするようにする必要があります。
Welcartでは ログインのタイミングで実行出来る “usces_action_member_logout” というアクションフックが用意されていていますので、このフックにWordPressユーザーをログアウトさせる処理を実行する関数を追加します。
Welcart会員のログアウト関数
[ \wp-content\plugins\usc-e-shop\classes\usceshop.class.php ] の 3943行目にWelcart会員をログアウトさせる関数が定義されています。また関数内にアクションフック “usces_action_member_logout” も確認出来ます。
/**
* Welcart会員ログアウト
*/
function member_logout() {
$cookie = $this->get_cookie();
$cookie['name'] = '';
$cookie['rme'] = '';
$options = get_option('usces');
$this->set_cookie($cookie);
$fcookie = $this->get_cookie( $options['usces_key'] );
unset($_SESSION['usces_member'], $_SESSION['usces_entry']);
do_action('usces_action_member_logout');
}
ログアウト関数のアクションフックに追加
上記のアクションフックにWordPressユーザーをログアウトさせる関数の “wp_logout()” を含む関数を追加します。
/**
* Welcartからログアウト時に実行する
*/
function ag_usces_action_member_logout()
{
//WordPressユーザーをログアウトする
wp_logout();
}
add_action( 'usces_action_member_logout', 'ag_usces_action_member_logout' );
動作環境情報
エックスサーバー(x10) PHP 7.3.14 MySQL 5.7 WordPress 5.4 Welcart e-Commerce 1.9.29
コメント