我希望这是一个愚蠢的问题,但目前无法找到明智的解决方案。
我在“产品”页面上有一个自定义字段-这是“关系”字段-我想在购物车页面中为每个产品显示我的RF字段。
更具体地说:我有一个与品牌相关的产品。该品牌有一个“发货时间”字段。
从某种意义上说,目前我的功能可以正常工作,因为它显示了请求值,但仅适用于购物车中的第一项。 那是我在function.php中的代码
add_filter( 'woocommerce_get_item_data', 'wc_add_shipping_to_cart', 10, 2 );
function wc_add_shipping_to_cart( $cart_data, $cart_item )
{
$custom_shipping = array();
if( !empty( $cart_data ) )
$custom_shipping = $cart_data;
// Get the product ID
$product_id = $cart_item['product_id'];
$custom_field_value = get_post_meta( $product_id, 'brand_select', true );
$display_brand_shipping = get_field('shipping_time_brand', $custom_field_value);
if( $custom_field_value = get_post_meta( $product_id, 'brand_select', true ) )
$custom_shipping[] = array(
'name' => __( 'Shipping', 'woocommerce' ),
'value' => $display_brand_shipping,
'display' => $display_brand_shipping,
);
return $custom_shipping; }
你能帮我吗?
答案 0 :(得分:1)
您的代码不可测试,因为它不可能重现与产品自定义字段和ACF字段相关的问题,但是可以通过以下方式进行简化:
add_filter( 'woocommerce_get_item_data', 'wc_add_shipping_to_cart', 10, 2 );
function wc_add_shipping_to_cart( $cart_item_data, $cart_item )
{
if( $brand_select = get_post_meta( $cart_item['product_id'], 'brand_select', true ) ) {
if( $shipping_time = get_field('shipping_time_brand', $brand_select ) ) {
$cart_item_data[] = array(
'name' => __( 'Shipping', 'woocommerce' ),
'value' => $shipping_time,
);
}
}
return $cart_item_data;
}
代码进入您的活动子主题(或活动主题)的function.php文件中。