我正在尝试以WooCoomerce顺序获取项目或产品属性。</ p>
我怎样才能得到它?
$order = new WC_Order( $order_id );
$items = $order->get_items();
foreach ( $items as $item ) {
$pid = $item['product_id'];
$patt = $pid->get_attribute( 'pa_myattrname' );
echo $patt;
}
稍后,我想在属性上插入自动回复链接,以便在用户完成付款后,他们会自动订阅我的自动回复。
谢谢
答案 0 :(得分:2)
$item['product_id'];
将返回整数product_id,您无法调用get_attribute
方法。使用整数product_id,您需要创建一个Product对象,然后调用方法
$pid = $item['product_id']; // returns the product id
$p = new WC_Product( $pid ); // create an object of WC_Product class
$patt = $p->get_attribute( 'pa_myattrname' ); // call get_attribute method
echo $patt;
答案 1 :(得分:0)
我知道这是一个古老的问题,但是该答案可能会对正在寻找更好选择的人有所帮助。
从订单中获取产品属性的方法要简单得多。您只需要进入产品(项目),然后加载meta data
// at first get order object
$order = wc_get_order($orderId);
// iterate through order items/products
foreach ($order->get_items() as $item) {
// load meta data - product attributes
foreach ($item->get_meta_data() as $metaData) {
$attribute = $metaData->get_data();
// attribute value
$value = $attribute['value'];
// attribute slug
$slug = $attribute['key'];
}
}