Welcart会員ユーザーのログアウト時にWordPressユーザーも同時にログアウトする方法

先日、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

関連記事

コメント

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