ホームページ > バックエンド開発 > PHPチュートリアル > 支払い方法に基づいて有料の WooCommerce 注文を自動的に完了する方法?

支払い方法に基づいて有料の WooCommerce 注文を自動的に完了する方法?

Mary-Kate Olsen
リリース: 2024-12-11 09:18:18
オリジナル
618 人が閲覧しました

How to Automatically Complete Paid WooCommerce Orders Based on Payment Method?

有料の WooCommerce 注文に条件付きオートコンプリートを実装する方法

WooCommerce では、仮想商品で注文の自動完了に関する問題が頻繁に発生します。この包括的なガイドでは、カスタム コード スニペットやプラグイン オプションなど、この問題に対処するための複数のソリューションが提供されています。より詳細なアプローチについては、WooCommerce 支払い方法に基づいて条件付きコードを実装することを検討してください。

有料注文をオートコンプリートするための条件コード

支払い方法に基づいてオートコンプリート機能を選択的に適用するには、支払いが必要なときにトリガーされる woocommerce_payment_complete_order_status フィルター フックを利用します。 チェックアウト。 WooCommerce 3 以降と互換性のある改良版は次のとおりです:

add_filter( 'woocommerce_payment_complete_order_status', 'wc_auto_complete_paid_order', 10, 3 );
function wc_auto_complete_paid_order( $status, $order_id, $order ) {
    return 'completed';
}
ログイン後にコピー

このコードは、「銀行振込」 (bacs)、「代金引換」を除くすべての支払いゲートウェイで許可されている有料注文ステータスを「完了」に変更します。 (タラ)、「Cheque」(小切手)。

追加考慮事項

  • この方法では、注文ステータスの変更 (処理が完了まで) に関する複数の顧客通知の送信が回避されます。
  • オンライン支払いが行われた場合にのみトリガーされるため、軽量で効果的です。必須。

代替案

改良版 (2018)

add_action( 'woocommerce_thankyou', 'wc_auto_complete_paid_order', 20, 1 );
function wc_auto_complete_paid_order( $order_id ) {
    // No updates for Bank wire, Cash on delivery, and Cheque
    if ( in_array( $order->get_payment_method(), array( 'bacs', 'cod', 'cheque', '' ) ) ) {
        return;
    } 
    // Autocomplete all others
    else {
        $order->update_status( 'completed' );
    }
}
ログイン後にコピー

元の回答 (すべてのWooCommerceバージョン)

add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_complete_paid_order', 10, 1 );
function custom_woocommerce_auto_complete_paid_order( $order_id ) {
    // No updates for Bank wire, Cash on delivery, and Cheque
    if ( ( 'bacs' == get_post_meta($order_id, '_payment_method', true) ) || ( 'cod' == get_post_meta($order_id, '_payment_method', true) ) || ( 'cheque' == get_post_meta($order_id, '_payment_method', true) ) ) {
        return;
    } 
    // Autocomplete all others
    else {
        $order->update_status( 'completed' );
    }
}
ログイン後にコピー

注: 必ずコード スニペットを子テーマの function.php ファイルに配置してください。

以上が支払い方法に基づいて有料の WooCommerce 注文を自動的に完了する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート