gpt4 book ai didi

php - 在 WooCommerce 管理订单项目上显示产品自定义字段也适用于可变产品

转载 作者:行者123 更新时间:2023-12-05 03:43:29 24 4
gpt4 key购买 nike

基于 Show custom fields on the order editing page in WooCommerce我做了一些细微更改的答案代码:

add_action( 'woocommerce_before_order_itemmeta', 'add_admin_order_item_custom_fields', 10, 2 );
function add_admin_order_item_custom_fields( $item_id, $item ) {
// Targeting line items type only
if( $item->get_type() !== 'line_item' ) return;

$product = $item-> get_product();
$value1 = $product->get_meta('model_number');

if ( ! empty($value1) ) {
echo '<table cellspacing="0" class="display_meta">';

if ( ! empty($value1) ) {
echo '<tr><th>' . __("Modelnummer", "woocommerce") . ':</th><td>' . $value1 . '</td></tr>';
}
echo '</table>';
}
}

我想让该代码也适用于可变产品自定义字段。

我需要更改什么才能使其适用于可变产品

最佳答案

如果它是没有为其设置自定义字段的产品变体,则以下将获取父变量产品自定义字段:

add_action( 'woocommerce_before_order_itemmeta', 'add_admin_order_item_custom_fields', 10, 2 );
function add_admin_order_item_custom_fields( $item_id, $item ) {
// Targeting line items type only
if( $item->get_type() !== 'line_item' ) return;

$product = $item->get_product();
$model_number = $product->get_meta('model_number');

// Get the parent variable product custom field if empty value
if( $item->get_variation_id() > 0 && empty($model_number) ) {
$parent_product = wc_get_product( $item->get_product_id() );
$model_number = $parent_product->get_meta('model_number');
}

if ( ! empty($model_number) ) {
echo '<table cellspacing="0" class="display_meta"><tr>
<th>' . __("Model number", "woocommerce") . ': </th>
<td>' . $model_number . '</td>
</tr></table>';
}
}

代码进入事件子主题(或事件主题)的 functions.php 文件。经过测试并有效。

关于php - 在 WooCommerce 管理订单项目上显示产品自定义字段也适用于可变产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66780626/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com