1

WordpressとWooCommerceを使用してeコマースサイトを設定しています。ワードプレスのメンバーアカウントを使用して顧客情報を追跡しています。ログインしたメンバーがカートを「クレジット」で購入することのみを選択できるようにする方法が必要です。つまり、注文に支払いは必要ありません。基本的に、私が行ったことは、「チェック」オプションをハイジャックし(他の場所では必要ないため)、必要な機能を使用できるようにするため、名前を「クレジット」に変更しました。

ただし、「クレジット」(チェック)オプションをユーザーがログインしている場合にのみ表示する方法が必要です。ユーザーがログインしていない場合にこのオプションを「フック解除」する方法はありますか?これは簡単なことのように思えますが、何も見つかりませんでした。どんな助けでも大歓迎です。

4

2 に答える 2

2

この質問に対する元の回答(BWDesignから)は、WooCommerceの変更(少なくともWooCommerce 2.1.7以降、おそらく以前)のために機能しなくなりました。これでトリックが実行され(2.1.7および2.1.8でテスト済み)、functions.phpファイルなどに追加します。

add_filter( "woocommerce_available_payment_gateways", "rp_filter_gateways", 9999 );

function rp_filter_gateways($args) {
 if(!is_user_logged_in() && isset($args['cheque'])) {
  unset($args['cheque']);
 }
 return $args;
}
于 2014-05-12T10:07:41.253 に答える
1

私はちょうど解決策を見つけました。このclass-wc-cheque.phpファイルでは、チェックまたは「小切手」(クレイジーブリット)オプションが。を使用してフックされて add_filter('woocommerce_payment_gateways', 'add_cheque_gateway' );います。したがって、解決策は、このコードをfunctions.phpファイルに追加することでした。

 if(!is_user_logged_in()){
     remove_filter('woocommerce_payment_gateways', 'add_cheque_gateway' );
 }

お役に立てれば!

于 2012-12-13T19:45:09.820 に答える