web-dev-qa-db-ja.com

セットVMゲストのショッパーグループ

(ユーザーが選択した)地域パラメーターに基づいて、ゲストユーザーの買い物客グループを設定する必要があります。

システムプラグイン(onAfterDispatch)内で次のコマンドを使用するとうまくいくと思いました。

// Getting a registered user and piggy-backing on that.
$user = JFactory::getUser(801);
/** @var TableVmusers $vm_user */
$vm_user_model = new VirtueMartModelUser();
$vm_user = $vm_user_model->getUser();
$vm_user->JUser = $user;
$region = JFactory::$application->input->get('region');
$vm_user->shopper_groups = [0 => $region];

しかし、それは機能していないようです。

1

Shopper Groupsはログインしたユーザーに完全にリンクされており、(システムプラグインを使用しても)イベントスタックで操作できないことを理解しました。ユーザーとしてログインする必要があり、そのユーザーにはVirtuemartコンポーネント内の買物客グループが割り当てられている必要があります。

したがって、最終的に、使用したい各ショッパーグループのユーザーを作成し、プラグインを使用して、そのユーザーとしてゲストに手動でログインし、正しいショッパーグループの価格を表示しました。

ひどい回避策ですが、他の方法があるとはまだ確信していません。

1