• Resolved slingshooter

    (@slingshooter)


    PDF Invoice Japan for WooCommerce を有効化すると、WooCommerce の注文メール内で payment gateway の email_instructions が重複登録されるようです。

    症状:
    ・銀行振込メールで銀行口座詳細が2回表示される
    ・代引きメールで「現金でお支払いください」等の決済案内が複数回表示される

    確認済み:
    ・子テーマの customer-on-hold-order.php は WC 10.4.0 構造
    ・woocommerce_email_before_order_table は直接呼んでいない
    ・email-order-details.php の上書きなし
    ・Code Snippets 全OFFでも発生
    ・functions.php にも payment_gateways / email_instructions 系コードなし
    ・PDF Invoice Japan for WooCommerce を停止すると症状が解消

    ログでは、PDF Invoice Japan 有効時に以下のように別Objectで email_instructions が複数登録されていました。

    WC_Gateway_BACS::email_instructions が別Objectで2回
    WC_Gateway_Cheque::email_instructions が別Objectで2回
    JP4WC_COD_Fee::email_instructions が複数回

    このため、PDF Invoice Japan 側で WooCommerce payment gateways が複数回初期化されている可能性があります。
    確認・修正をお願いできますでしょうか。

Viewing 2 replies - 1 through 2 (of 2 total)
  • Thread Starter slingshooter

    (@slingshooter)

    原因箇所を特定しました。

    PDF Invoice Japan for WooCommerce の

    lib/class-invoicejapan.php

    内にある init_gateway_mail_timing_remarks_refunds() で、以下のコードが使われていました。

    $payment_gateways = new WC_Payment_Gateways();
    $gateways = $payment_gateways->payment_gateways();

    この new WC_Payment_Gateways() により、WooCommerce の決済ゲートウェイインスタンスが新規生成され、
    woocommerce_email_before_order_table に email_instructions が別Objectで重複登録されていました。

    実際にログでは、PDF Invoice Japan 有効時に以下のように重複登録されていました。

    WC_Gateway_BACS::email_instructions が別Objectで2回
    WC_Gateway_Cheque::email_instructions が別Objectで2回
    JP4WC_COD_Fee::email_instructions が複数回

    その結果、
    銀行振込メールでは銀行口座情報が2回表示され、
    代引きメールでは支払い案内が複数回表示されていました。

    該当箇所を以下に変更したところ、銀行振込メール・代引きメールともに重複表示が解消しました。

    $payment_gateways = WC()->payment_gateways();
    $gateways = $payment_gateways->payment_gateways();
    Plugin Author Katsushi Kawamori

    (@katsushi-kawamori)

    ご報告ありがとうございます。最新バージョン 2.15 で修正しました。

Viewing 2 replies - 1 through 2 (of 2 total)

You must be logged in to reply to this topic.