问题描述
我正在为我的 woocommerce 商店开发发票系统。
我正在使用一个插件,为所有产品添加重量单位自定义字段(简单且适用于变体产品的每个变量)
我设法将数量单位列添加到发票插件中,对于简单的产品,我设法获取了该字段。
请帮忙
/**
* Adds line item quantity to columns data array.
*
* @param array $data line item data.
* @param int $item_id item ID.
* @param object $item item object.
*/
public function add_quantity_column_data( &$data,$item_id,$item ) {
$product_id = $item->get_product_id();
$quantity_suffix = get_post_meta( $product_id,'_upw_quantity_suffix',true);
$quantity_suffix_sep = " ";
$data['quantity'] = $item['qty'] . $quantity_suffix_sep . $quantity_suffix
}
自定义字段键为 _upw_quantity_suffix
。
解决方法
要处理产品变体自定义字段,您可以尝试这个重新访问的代码版本:
/**
* Adds line item quantity to columns data array.
*
* @param array $data line item data.
* @param int $item_id item ID.
* @param object $item WC_Order_Item_Product Object.
*/
public function add_quantity_column_data( &$data,$item_id,$item ) {
$product = $item->get_product();
$qty_suffix = $product->get_meta( '_upw_quantity_suffix' );
$sepatator = ' ';
if ( ! empty($qty_suffix) ) {
$data['quantity'] = $item['qty'] . $sepatator . $qty_suffix;
}
}
它应该可以工作。
或者你也可以试试:
/**
* Adds line item quantity to columns data array.
*
* @param array $data line item data.
* @param int $item_id item ID.
* @param object $item WC_Order_Item_Product Object.
*/
public function add_quantity_column_data( &$data,$item ) {
$product = $item->get_product();
$qty_suffix = $product->get_meta( '_upw_quantity_suffix' );
if ( empty($qty_suffix) ) {
$product = wc_get_product( $item->get_product_id() );
$qty_suffix = $product->get_meta( '_upw_quantity_suffix' );
}
$sepatator = ' ';
if ( ! empty($qty_suffix) ) {
$data['quantity'] = $item['qty'] . $sepatator . $qty_suffix;
}
}