当前位置: 首页 > 知识库问答 >
问题:

WooCommerce ACF在购物车和结账页面上显示自定义元数据

公羊浩阔
2023-03-14

我想在WooCommerce购物车和结帐页面中同时显示使用高级自定义字段插件创建的自定义字段的值。

我正在函数中使用下面的代码。php我的主题页面,仅在产品的单个页面中显示:

add_action( 'woocommerce_before_add_to_cart_button', 'add_custom_field', 0 );

function add_custom_field() {
    global $post;

  echo "<div class='produto-informacoes-complementares'>";
  echo get_field( 'info_complementar', $product_id, true );
  echo "</div>";

    return true;
}

非常感谢大家对我的帮助,请原谅我的英语。

共有1个答案

危斯伯
2023-03-14

我不能在你的网上商店测试这个,所以我不完全确定:

在单个产品页面中显示自定义字段值(您的函数):

add_action( 'woocommerce_before_add_to_cart_button', 'add_custom_field', 0 );

function add_custom_field() {
    global $product;             // Changed this

    // Added this too (compatibility with WC +3) 
    $product_id = method_exists( $product, 'get_id' ) ? $product->get_id() : $product->id;

    echo "<div class='produto-informacoes-complementares'>";
    echo get_field( 'info_complementar', $product_id );
    echo "</div>";

    return true;
}

(更新)将此自定义字段存储到购物车和会话中:

add_filter( 'woocommerce_add_cart_item_data', 'save_my_custom_product_field', 10, 2 );

function save_my_custom_product_field( $cart_item_data, $product_id ) {

    $custom_field_value = get_field( 'info_complementar', $product_id, true );

    if( !empty( $custom_field_value ) ) 
    {
        $cart_item_data['info_complementar'] = $custom_field_value;

        // below statement make sure every add to cart action as unique line item
        $cart_item_data['unique_key'] = md5( microtime().rand() );
    }
    return $cart_item_data;
}

(更新)在购物车和结帐时呈现元数据:

add_filter( 'woocommerce_get_item_data', 'render_meta_on_cart_and_checkout', 10, 2 );

function render_meta_on_cart_and_checkout( $cart_data, $cart_item ) {
    $custom_items = array();
    // Woo 2.4.2 updates
    if( !empty( $cart_data ) ) {
        $custom_items = $cart_data;
    }
    if( isset( $cart_item['info_complementar'] ) ) {
        $custom_items[] = array( "name" => "Info complementar", "value" => $cart_item['info_complementar'] );
    }
    return $custom_items;
}

在最后两个钩子上有一些错误,使得这个不起作用...现在应该管用了。

 类似资料:
  • 我正在尝试获取WooCommerce产品的自定义字段值,以显示在商店系统的不同页面上。我成功地对单个产品页面执行了此操作,但相同的代码不适用于购物车。 对于单个产品,我在函数中使用了此代码。php,它可以很好地工作: 我为购物车尝试了相同的代码,但这次值没有显示在页面上。我还提到了这个线程(获取自定义属性),将$post更改为$product,但仍然没有输出。。。 有什么建议吗?

  • 我在产品页面的常规设置选项卡上创建了一个自定义字段WooCommerce Admin,以插入一些天的制造。我想在购物车和结账页面上显示每个产品名称上方的自定义字段值。 这是我的密码: 但这不起作用,因为我无法在购物车和结帐页面上显示自定义字段值。 我该如何实现这一点? 谢啦

  • 我已经在woocommerce单一产品页面上添加了一些自定义选项,使用了下面关于我的主题函数的代码。php: 现在我想在购物车页面上显示所选的选项值。请帮我做这件事。谢啦

  • 我在我的产品页面中创建了一个自定义保修字段,通过function.php. 我想“复制”这个自定义字段的键和值,在一个自我生成的自定义字段的管理订单页面上,根据产品在购物车/订单(无插件)。 因此,通过订单页面上的这个自定义字段,我将最终能够使用WooCommerce pdf发票插件在我的pdf发票中显示“保修”。 另一种解释是: 作为管理员,我在“产品1”页面填写保修值 当订单中有“produc

  • 我使用下面的这个过滤器来设置默认数量的2个产品被预定义时添加到购物车默认。它实际上在产品页面上工作,默认数量设置为2,并将2个产品添加到购物车。但是当用户来到购物车页面时出现问题,如果他/她添加了4个产品,除了显示数量为2之外,所有的计算都是正确的。例如,即使我将购物车页面上的数量更改为6,并刷新购物车,除了显示的数量显示为2之外,所有的数量都被正确地重新计算。我想我应该以某种方式应用这个过滤器添

  • 我创建了一个定制的产品类型变量,在后端和前端一切都很好,唯一的问题是,在购物车/结帐详细信息中,变量产品名称没有显示,而且在购买商品后库存没有减少,1个商品可供变量使用,购买后,保持1个商品可用,而不是缺货。 这是使用的代码。