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

在WooCommerce订单和电子邮件上保存和显示产品自定义元

宗政颖逸
2023-03-14

好的,基本上我们在我们的WooCommerce商店中使用ACF创建了一个自定义字段,以便为特定的产品添加一个“发货延迟”通知。

// Render the custom product field in cart and checkout
add_filter( 'woocommerce_get_item_data', 'wc_add_shipping_delay', 10, 2 );
function wc_add_shipping_delay( $cart_data, $cart_item ) 
{
    $custom_items = array();

    if( !empty( $cart_data ) )
        $custom_items = $cart_data;

    // Get the product ID
    $product_id = $cart_item['product_id'];

    if( $custom_field_value = get_post_meta( $product_id, 'shipping_delay_for_out_of_stock_items', true ) )
        $custom_items[] = array(
            'name'      => __( 'Shipping Delay', 'woocommerce' ),
            'value'     => $custom_field_value,
            'display'   => $custom_field_value,
        );

    return $custom_items;
}

共有1个答案

越欣怡
2023-03-14

以下内容将把您的自定义域保存为订单项元数据,并在任何地方显示它:

// Save and display "shipping delay" on order items everywhere
add_filter( 'woocommerce_checkout_create_order_line_item', 'action_wc_checkout_create_order_line_item', 10, 4 );
function action_wc_checkout_create_order_line_item( $item, $cart_item_key, $values, $order ) {

    // Get the shipping delay
    $value = $values['data']->get_meta( 'shipping_delay_for_out_of_stock_items' );

    if( ! empty( $value ) ) {
        // Save it and display it
        $item->update_meta_data( __( 'Shipping Delay', 'woocommerce' ), $value );
    }
}   

代码放在活动子主题(或活动主题)的functions.php文件中。测试和工作。

 类似资料:
  • 所以我已经为一个在线商店做了一个自定义管理订单模板(重新设计和重新安排了很多)。我已经知道“show image=>false/true”这不是我要找的答案,因为我完全改变了我的电子邮件模板中的一切。现在我的问题是不知道如何展示产品形象。 欢迎任何帮助,因为我是编码的新手。 编辑:这是我现在存在的错误: 下面是我的代码:

  • 我正在尝试修改自动生成的WooCommerce订单电子邮件中的产品图像。请注意,我尝试使用钩子来实现这一点,而不是创建一个修改过的电子邮件模板。 首先,我在单一产品页面上有一个隐藏的输入。我有一些JS设置图像的ID,它基于产品的颜色(我用ACF制作的自定义属性)。 为了便于参考,我在购物车页面上做了以下工作: 这很好,但我很难按顺序复制电子邮件。到目前为止,我遇到了以下几点。这会在电子邮件中显示图

  • 因此,当我在mytheme/functions.php文件中编写这段代码时,这里有一个交易 它只在后端工作(产品编辑页面),它保存了变量,但没有显示在meta或add to card按钮之前或之后,我找不到解决方案 我尝试了echo,但仍然没有结果 所以我以为我是我的主题?不,我在其他vps上安装了wordpress,但我仍然没有显示文本字段text nothing 如果你知道这个问题,请友好地告

  • 关于WooCommerce。我有我要添加到购物车的自定义数据。在functions.php文件中,我有以下功能。 这是可行的,自定义数据显示在购物车中。但是,定制数据不会显示在订单和订单电子邮件上。我在Stackoverflow上看到了一些解决这个问题的答案,但我无法让它们适用于我的情况。我提到的解决方案是。 在Woocommerce中保存和显示订单项自定义元数据 显示和保存添加的自定义购物车项目

  • 有什么方法我可以添加内容从一个自定义产品字段到‘订单完成'WooCommerce电子邮件? 我已经将此代码添加到functions.php中,以便将自定义字段保存到产品元信息中。 上面的代码工作得很好,它显示了所有“订单完成”电子邮件的自定义文本。 但是,我想用自定义产品字段数据替换文本的URL部分。每个产品的数据都不同。 谢了。

  • 在WooCommerce中,我启用了完美品牌WooCommerce插件来显示产品品牌。我希望品牌出现在整个周期(单个产品页面,购物车,结账,迷你购物车,订单和电子邮件)的产品名称之前。 我能够在购物车和结帐页面中的产品名称之前显示相关品牌,使用“将Woocommerce品牌名称添加到购物车项目产品名称”回答代码稍微更改(使用插件自定义分类法): 但我不知道如何在订单和电子邮件通知中实现这一点。