2016-12-13 10 views
4

私のWooCommerceウェブサイトでは、Woocommerce Order Barcodesを使用して電子メール通知の注文バーコードを表示しています。
私はこのバーコードを隠したり、削除したりしたいと思います。の注文状況のメール通知があります。完了した注文ステータス電子メール通知のバーコードを表示するだけです

私はプラグインファイルを編集しようとしました(これはお勧めできません)。

// Add barcode to order complete email 
add_action('woocommerce_email_after_order_table', array($this, 'get_email_barcode'), 1, 1); 

しかし、それはすべての電子メール通知からバーコードを削除します。class-woocommerce-order-barcodes.phpプラグインファイルに - 私はこの(129行128)を削除しました。

電子メール通知からこれらのバーコードを削除し、電子メール通知が完了したときに表示するにはどうすればよいですか?それだけで完成オーダーステータスのメール通知を動作させるために

おかげ

答えて

2

ターンアラウンドは、IF文でちょうどこの小さな条件を追加することです:

$order->has_status('completed') 

だから、あなたはそれをこのように試みることができます最初:

if (!$this->has_status('completed')){ 
    add_action('woocommerce_email_after_order_table', array($this, 'get_email_barcode'), 1, 1); 
} 

しかし、私は目に$順序オブジェクト($ this)を取得することを確認していないとして、ええ、私はこのプラグインのコードをさらに見てきました。

ライン358には、条件を追加するコードがあります。ここで

/** 
* Get barcode for display in an email 
* @access public 
* @since 1.0.0 
* @param object $order Order object 
* @return void 
*/ 
public function get_email_barcode ($order) { 

    if(! $order) return; 

    // HERE is my condition <==== <==== <==== <==== <==== <==== <==== 
    if (!$order->has_status('completed')) return; 

    // Generate correctly formatted HTML for email 
    ob_start(); ?> 

// …/… 
// code of the function continues … 

私たちはすでに$orderオブジェクトを取得するように私は、それが動作するように起こっているかなり確信しています。唯一のことは、プラグインを更新するたびにこのコードを再度追加する必要があることです。

これはテストされていないため、動作するかどうかはわかりません。私にフィードバックを与えてください

+0

いつものようにあなたのツイークは魅力のように動作します、Loïcありがとうございます#ONE –

関連する問題