【问题标题】:WooCommerce- Order Details Thank You page Add Random Number for each product?WooCommerce-订单详细信息感谢页面为每个产品添加随机数?
【发布时间】:2019-01-17 21:35:04
【问题描述】:

我遇到了一个问题,在我的电子商务网站下订单后,我想在订单详细信息部分显示每个产品的随机数。 我试过这个:在主题(function.php)中

add_action( 'woocommerce_order_status_processing', 'add_unique_id');

然后

function add_unique_id($order_id) {
    $order = new WC_Order( $order_id );
    $items = $order->get_items(); 
      foreach ($items as $item_id => $product )
     {
        $gen_id ="Hi Dad!";
      wc_add_order_item_meta($item_id, 'unique_id', $gen_id);
     }

但是通过使用它,我并没有得到每个产品的唯一编号。

我想在感谢页面图片的红色部分下方添加随机数。

请帮忙解决。 提前致谢

【问题讨论】:

    标签: woocommerce


    【解决方案1】:

    如果您已经完成了将 item_meta_data 添加到购物车的操作,希望您也可以轻松地将其显示在购物车中吗?

    这不是必需的,只是为了测试目的。 为此,您可以使用“woocommerce_get_item_data

    add_filter( 'woocommerce_get_item_data', 'mwb_wgm_woocommerce_get_item_data', 10, 2 );
    
    function mwb_wgm_woocommerce_get_item_data($item_meta, $existing_item_meta){
    
        //by using $existing_item_meta , find your unique_key (whether it is displaying or not)
    
        foreach ($existing_item_meta as $key => $val ) {
    
            if($key == 'unique_key') {
                $item_meta [] = array (
                        'name' => __('RANDOM KEY','your_slug'),
                        'value' => stripslashes( $val ),
                );
            }
        }
        return $item_meta;
    }
    

    让我知道您的 UNIQUE KEY 是否显示在那里?

    【讨论】:

    • 我能够在购物车中生成密钥以及查看订单,但下订单后它没有显示在感谢页面中
    • 通过使用您的代码,我得到了唯一的不,我已将其打印在数组中,它看起来像 '[data:protected] => Array ( [id] => 3595 [key] => _unique_nos [ value] => Array ( [0] => 75816 ) )' 我应该如何打印这个?
    • 你能给我看看你购物车的截图吗,它是如何显示的?我不需要数组,只需要购物车项目。
    【解决方案2】:

    有各种各样的问题可以有 1. wc_add_order_item_meta (Woo 版本

    如果您正在考虑将 item_meta 添加到您的每个产品中,然后是的,它将自动显示在感谢订单页面上。

    请使用“$item->add_meta_data('Your_Key',$order_val);” [WC_version >= 3.0.0]

    1. 请确保您已使用此挂钩 ->“woocommerce_add_cart_item_data”将“密钥”设置为您的 cart_item_meta。

    希望这对你有帮助:)

    【讨论】:

    • 感谢您的回答,请您简要说明一下。我创建了像 'add_filter('woocommerce_add_cart_item_data', 'filter_add_cart_item_data', 10, 4) 这样的键; function filter_add_cart_item_data( $cart_item_data, $product_id, $variation_id, $quantity ) { if ( !isset($cart_item_data['unique_key']) ) { // 使这个项目唯一 $cart_item_data['unique_key'] = md5( microtime() .rand() . “嗨,爸爸!” ); } 返回 $cart_item_data; } '
    • Twari 如何实现这个
    • 请查看我的下一个答案
    • 如果您成功显示密钥,那么它也会自动显示在您的感谢页面上
    猜你喜欢
    • 1970-01-01
    • 2014-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多