2017-07-08 42 views
1

我能加入,验证,显示车和结帐页面上的自定义字段的产品Page.Please有人可以告诉我怎么可以检索自定义保存在订单项元的自定义字段值字段值使用woocommerce_order_status_completed挂钩?获取钩住功能

我想发送额外的电子邮件,包括自定义字段数据的确认电子邮件发送给用户

static function sendCustomData($order_id) { 
    $order = wc_get_order($order_id); 
    $items = $order->get_items(); 

    foreach ($items as $item) { 
     $product_id = $item['product_id']; 

     $Id = get_post_meta($product_id, '_wpws_ID', true); 
     $first_name = $order->get_billing_first_name(); 
     $billing_email = $order->get_billing_email(); 


     if (empty($Id)) 
     continue; 

     $mail = new CustomMails(); 
     $mail->SendMailtoReaderOnWCOrderComplete($first_name, $billing_email, $Id); 
    } 
} 
add_action('woocommerce_order_status_completed','sendCustomData'); 

保存自定义为了meta值

public static function tshirt_order_meta_handler($item_id, $values, $cart_item_key) { 
    if(isset($values['name_on_tshirt'])) { 
     wc_add_order_item_meta($item_id, "name_on_tshirt", $values['name_on_tshirt']); 
    } 
} 
add_action('woocommerce_new_order_item', 'tshirt_order_meta_handler', 1, 3); 

回答

1

为了得到"name_on_tshirt"自定义字段,你需要获得订单项ID,你需要使用wc_get_order_item_meta()函数是这样的:

foreach ($order->get_items() as $item_id => $item) { 
    ## HERE ==> Get your custom field value 
    $name_on_tshirt wc_get_order_item_meta($item_id, "name_on_tshirt", true); 
} 
+0

非常感谢Loic :) – Himani

+0

@Himani欢迎您... – LoicTheAztec

0

变化if (empty($Id))后..到if (empty($wbnId))

+0

我明白了,这是一个错字,但还没有成型。我已更新我的问题 – Himani