2017-10-17 12 views
0

私はWooCommerceでの公式支払い(チリのTransbank)のプラグインを持っていますが、このプラグインはtransaction_idを「ありがとう」ページに直接印刷しています。私はこのトランザクションを取得し、データベースに追加しました。新しい注文メールがWooCommerceでトリガーされるのはいつですか?

問題は、WooCommerceがtransaction_idが表示されない「新規注文」メールを送信するときです。私はtransaction_idの番号を得る前に既にメールを送ったと思う。私はWooCommerceが新しい注文メールを送信するとき、知りたいですか?

+0

アクション 'woocommerce_email_before_order_table'を使用して、transaction_id番号のようなカスタム注文メタデータを挿入します。電子メールのどこにトランザクションIDを表示させるかによって異なります。このビジュアルガイドは、どこに置くかを決めるのに役立ちます。https://businessbloomer.com/woocommerce-visual-hook-guide-emails/ –

答えて

0

woocommerce_email_after_order_tableフックを使用してカスタムデータをメールに追加できます。

/** 
* 
* @param instance $order 
* @param bool $sent_to_admin TRUE for admin 
*/ 
function wh_addTransactionIdOrderEmail($order, $sent_to_admin) 
{ 
    $order_id = method_exists($order, 'get_id') ? $order->get_id() : $order->id; 
    $transaction_id = get_post_meta($order_id, "_transaction_id ", true); //<-- replace it with your metakey 
    if(empty($transaction_id)) //if blank i.e for Failed/Cancelled order then do not add transaction ID 
     return; 
    echo '<p></p><p><strong>Transaction ID:</strong> ' . $transaction_id . '</p>'; 
} 

add_action('woocommerce_email_after_order_table', 'wh_addTransactionIdOrderEmail', 10, 2); 

コードは、あなたのアクティブな子テーマ(またはテーマ)のfunctions.phpファイルになります。また、任意のプラグインのPHPファイルにもあります。
コードがテストされ、動作します。

希望します。

+0

私が正しいとすれば、このコードはメールフォームに 'transaction_id'を手動で挿入します。右? しかし、問題は、DBにtransaction_idが入る前にメールが送信されることです。最初にIDを取得してメールを送信したいと思います。 –

+0

@ArmandoGarcía:あなたは 'transaction_id'を挿入するためにどのフックを使用していますか? '$ order-> payment_complete($ transaction_id);というように支払いを設定している場合は、プラグインを使用しているため、CoDを有効にして、顧客がそれを使用している場合を除き、 –

+0

$ order-> payment_completeでしたか? –

関連する問題