Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress Woocommerce:如何为每个购买的商品生成唯一的ID?_Wordpress_Woocommerce - Fatal编程技术网

Wordpress Woocommerce:如何为每个购买的商品生成唯一的ID?

Wordpress Woocommerce:如何为每个购买的商品生成唯一的ID?,wordpress,woocommerce,Wordpress,Woocommerce,我在WordPress 4.3.1.和WooCommerce 2.4.7.一起工作。对于我的雇主当前的商店项目,我们需要为购买的每件商品生成唯一的ID,这永远不能与任何其他购买相同 add_action( 'woocommerce_order_status_completed', 'custom_function' ); function custom_function($order_id) { // completed order object (can be useful)

我在WordPress 4.3.1.和WooCommerce 2.4.7.一起工作。对于我的雇主当前的商店项目,我们需要为购买的每件商品生成唯一的ID,这永远不能与任何其他购买相同

add_action( 'woocommerce_order_status_completed', 'custom_function' );

function custom_function($order_id) {
    // completed order object (can be useful)
    $order = new WC_Order( $order_id );
    // run what you want here
}
例如,如果有人购买了3件设计和尺寸相同的衬衫,每件衬衫在购物车中都应该显示一个唯一的商品ID。无论我们收到多少订单,唯一的项目ID都不能重复


至于ID,我正在考虑将产品SKU与日期混合,可能还有订单ID来生成日期。我该怎么做呢?是否有一个插件可以处理这个问题,或者我应该直接使用PHP吗?

您可以使用WooCommerce钩子,比如WooCommerce\u order\u status\u completed,以便在每次购买后运行一些东西

add_action( 'woocommerce_order_status_completed', 'custom_function' );

function custom_function($order_id) {
    // completed order object (can be useful)
    $order = new WC_Order( $order_id );
    // run what you want here
}

我可以建议您使用post meta或user meta(根据您的需要)。

我假设您希望在内部使用唯一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 = "generate id goes here"; 
          wc_add_order_item_meta($item_id, 'unique_id', $gen_id);
        }

非常感谢。这是一个很大的帮助!更新:我在MySQL中生成了条目ID,然后使用mysqli调用从数据库中获取它们。谢谢你的帮助,编剧和弗拉维奥·李·沃西!这还不错,但我确实喜欢使用处理的想法,而不是完成(尽管这可能会随着我在项目中的工作而改变)。