相关疑难解决方法(0)

将自定义数据添加到 Woocommerce 订单项目

我有一个自定义插件,允许客户将自定义信息添加到他们的订单中。

该商品将添加到购物车,并且自定义数据将显示在购物车页面上。但是,自定义信息不会转移到后端的订单页面。理想情况下,我还希望将自定义数据添加到客户订单电子邮件中。

当前代码如下:

<?php
function wcpc_save_custom_product_field( $cart_item_data, $product_id ) {
    if( isset( $_REQUEST['wcpc_custom_product'] ) ) {
        $cart_item_data[ 'wcpc_custom_product' ] = $_REQUEST['wcpc_custom_product'];
        $cart_item_data[ 'wcpc_custom_price' ] = $_REQUEST['wcpc_custom_price'];
        /* 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_action( 'woocommerce_add_cart_item_data', 'wcpc_save_custom_product_field', 10, 2 );

function render_meta_on_cart_and_checkout( $cart_data, $cart_item = null ) {
    $custom_items = array();
    /* Woo 2.4.2 updates */
    if( !empty( $cart_data ) ) {
        $custom_items = …
Run Code Online (Sandbox Code Playgroud)

php wordpress orders woocommerce hook-woocommerce

5
推荐指数
1
解决办法
1万
查看次数

WooCommerce:添加自定义元作为隐藏订单项元以供内部使用

我想向 WooCommerce 中的订单项目添加一些元数据。这些元字段仅供内部使用,不应可见。

我们的产品中有一些额外的字段,例如额外费用。我想在导出订单后使用该费用进行处理。

我在这里找到了一个非常好的答案:https ://stackoverflow.com/a/41988701/1788961

add_action('woocommerce_checkout_create_order_line_item', 'add_custom_hiden_order_item_meta_data', 20, 4 );
function add_custom_hiden_order_item_meta_data( $item, $cart_item_key, $values, $order ) {

    // Set user meta custom field as order item meta
    if( $meta_value = get_user_meta( $order->get_user_id(), 'billing_enumber', true ) )
        $item->update_meta_data( 'pa_billing-e-number', $meta_value );
}
Run Code Online (Sandbox Code Playgroud)

但在此示例中,元字段中的内容将显示在客户的订单详细信息中。

有没有办法使这些字段仅在后端可见并可用于内部功能?

php wordpress orders woocommerce hook-woocommerce

3
推荐指数
1
解决办法
4532
查看次数

在Woocommerce 3.4中替换woocommerce_add_order_item_meta挂钩

我有使用woocommerce_add_order_item_meta挂钩的自定义代码。但是woocommerce 3.4.0显示错误日志:“自版本3.0.0开始不赞成woocommerce_add_order_item_meta!请改用woocommerce_new_order_item。” 如何解决?非常感谢你。我的代码:

    // add data design to order
function tshirt_order_meta_handler( $item_id, $values, $cart_item_key ) {
    if( WC()->session->__isset( $cart_item_key.'_designer' ) ) {
        wc_add_order_item_meta( $item_id, "custom_designer", WC()->session->get( $cart_item_key.'_designer') );
    }
}
add_action( 'woocommerce_add_order_item_meta', 'tshirt_order_meta_handler', 1, 3 );
Run Code Online (Sandbox Code Playgroud)

php wordpress orders woocommerce hook-woocommerce

1
推荐指数
1
解决办法
1986
查看次数

标签 统计

hook-woocommerce ×3

orders ×3

php ×3

woocommerce ×3

wordpress ×3