web-dev-qa-db-ja.com

WooCommerceからの支払いゲートウェイの削除

WooCommerceショップ(ローカルで運営)がありますが、支払いゲートウェイを削除したいと思います。顧客はセントを支払うことなく注文できるはずです。私は彼らに手動で請求書を送ります。

これを無効にする場所が実際には見つかりません。WooCommerceでは標準ではないようです。

バックエンドのすべての支払いゲートウェイを無効にしようとしましたが、1つの支払いゲートウェイを有効のままにしておく必要があります。

前もって感謝します!

13
Arko Elsenaar

テーマのfunctions.phpに次の行を追加するだけです:add_filter('woocommerce_cart_needs_payment', '__return_false');

23
Mateusz Paulski

「代金引換」を有効のままにすると、チェックアウト時に支払いが行われません。 「代金引換」のタイトルとラベルは、「支払い不要」などに簡単に変更できます。

17
crdunst

この質問に対する他の回答が対処していないことは、顧客が最終的に請求書を支払う方法が必要であるという事実です。代金引換(ニーズに合わせて名前が変更されました)を使用すると、ユーザーが実際にチェックアウト時に支払う必要がなくなりますが、問題は、代金引換がのみである場合です。 -)支払い方法、それはまだあなたが彼らに請求書を送るときの唯一の支払い方法になります。

ほとんどの場合、カートのチェックアウト時の代金引換と、請求書の別の支払い方法(Stripeなど)のみが必要になると思います。支払方法。

後払いの設定を作成するための完全なワークフローは次のとおりです。

  1. @crdunstが言及しているように、代金引換を使用して、名前を「WaitforInvoice」などに変更する必要があります。
  2. 使用するすべての支払いゲートウェイを有効にします(この例では、代金引換とStripeのみを使用します。代金引換は「チェックアウト」支払いゲートウェイになり、Stripeは請求書支払いゲートウェイになります。
  3. 次のフィルターを使用して、_order-pay_エンドポイント(請求書の支払いに使用されるページ)を使用しているかどうかに基づいてゲートウェイをオンまたはオフにします。

    _/**
     * Only show Cash on Delivery for checkout, and only Stripe for order-pay
     *
     * @param   array   $available_gateways    an array of the enabled gateways
     * @return  array                          the processed array of enabled gateways
     */
    function so1809762_set_gateways_by_context($available_gateways) {
        global $woocommerce;
    
        $endpoint = $woocommerce->query->get_current_endpoint();
    
        if ($endpoint == 'order-pay') {
            unset($available_gateways['cod']);
        } else {
            unset($available_gateways['stripe']);
        }
    
        return $available_gateways;
    }
    add_filter( 'woocommerce_available_payment_gateways', 'so1809762_set_gateways_by_context');
    _

もちろん、_order-pay_ページにストライプ以外のゲートウェイを使用している場合は、unset($available_gateways['stripe']);を適切な配列キーに更新する必要があります。

その後、あなたは行ってもいいはずです!これで、請求書の支払いページを表示しているかどうかに基づいて、サイトにさまざまなゲートウェイが表示されます。

3
Pete

他のオプションは、BACS支払い方法を使用することです。この方法では、後で請求されることをクライアントに説明できます。

BACSの使用時に送信される電子メールに情報を追加することもできます。

0
Gabriel Reguly