2

私は日本に住んで働いています。リソースが限られている小さなカキ会社があり、すべてのプログラミングを自分で行っていますが、知識とスキルは限られています。初めて投稿します。これが良い質問でなかったり、間違っていたりしたら申し訳ありません...よろしくお願いします。

最新の Woocommerce 3.2.3 を使用しています。また、メール コントロール プラグイン、銀行 (フリコミ) 支払いに感謝して確認するためのカスタム メール、WooCommerce for Japan プラグインなど、いくつかのプラグインも使用しています。

日本の人気ECサイト(楽天カラミショップ、yahoo!オークション等)と同様のワークフローを作りたい。日本にはオートコンプリートがなく、サービス重視すぎてクレイジーで、すべてを綿密にチェックして確認する必要があります。ご参考までに、日本の標準的な流れは次のとおりです。お客様が注文する -> お客様が一括確認メールを受け取る -> 料金が正しく、注文が当社で処理できるものであることを確認する -> 発送する特定の配達日時などを指定した処理中の注文 -> 注文を梱包して記入し、追跡コードを含む「発送済み」メッセージを送信します。

とにかく私はこれを見つけました:

add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_complete_order' );
function custom_woocommerce_auto_complete_order( $order_id ) {
    global $woocommerce;
     if ( !$order_id )
        return;
    $order = new WC_Order( $order_id );
    $order->update_status( 'on-hold' );
}

ここから。そして、このテーマに沿った多くのバリエーション 。これで途中まで行けます。しかし、電子メールはまだ処理をトリガーしています (とにかく、PayPal と COD の場合)。

また、代金引換注文のメールがここに引っかかっているように見えることも認識しています。

add_filter( 'woocommerce_payment_complete_order_status', array( $this, 'change_payment_complete_order_status' ), 10, 3 );

「class-wc-gateway-cod.php」ファイルで。そして、これらのトリガーは、私が望まない電子メール、「処理中」の電子メールをもたらすことになります。

// Triggers for this email
add_action( 'woocommerce_order_status_failed_to_processing_notification', array( $this, 'trigger' ), 10, 2 );
add_action( 'woocommerce_order_status_on-hold_to_processing_notification', array( $this, 'trigger' ), 10, 2 );
add_action( 'woocommerce_order_status_pending_to_processing_notification', array( $this, 'trigger' ), 10, 2 );

現在、Paypal、フリコミ(日本の銀行振込)、代金引換の3つの支払い方法があります。これらの支払い方法のすべてに、「自動確認」メッセージとして使用する保留メッセージが返されるようにします。システム内のそれらのステータスも「保留中」である必要があります。その後、それらを処理に移すことができ、その後はすべてスムーズに処理できます。

1.すべてのゲートウェイからすべての注文ステータスをアンフックします。2. すべての新規注文がデフォルトで「保留中」に完了しました。 3. これにより、「保留中」の電子メールがトリガーされ、一石二鳥です。

注文処理とトリガーが完了した後、ステータスを「保留中」に変更することしかできなかったようです(公式のプラグインと同じようです)。これはバックエンドでのみ役立ちます。

補足: Woocommerce が本当にここで競争したいのであれば、無料の Woocommerce for Japan プラグインにこれ​​を含める必要がありますが、そのコミュニティは遅く、私が質問したところ、カスタム プラグインの支払いを申し出られました。

ありがとうございました!

4

1 に答える 1