我在WooCommerce中设置了可变产品。
每个变体都有一个唯一的SKU。我的任务是检查购物车内的SKU,然后根据SKU生成大量随机字符串(16个字母数字字符)。
>
如果购物车中的项目(1)是SKU“ABC”,则为相应订单生成并存储(x)个唯一字符串。
如果购物车中的项目(2)为SKU“DEF”,则为相应订单生成并存储(y)个唯一字符串。
我已经查看了woocommerce\u add\u order\u item\u meta
hook,但我似乎无法访问我创建的与此hook关联的函数中的商品数据?
我现在正在使用
add_action( 'woocommerce_add_order_item_meta', 'experiment_add_order_item_meta', 10, 3 );
function experiment_add_order_item_meta( $item_id, $values, $cart_item_key ) {
// Get a product custom field value
$custom_field_value = 'hithere';
// Update order item meta
if ( ! empty( $custom_field_value ) ){
wc_add_order_item_meta( $item_id, 'meta_key1', $custom_field_value, false );
}
}
但我在尝试从这一点上获得产品SKU时迷失了方向。我无法在函数中var\u dump()
查看$values
等?
说明/使用的功能
woocommerce\u add\u order\u item\u meta
hook自woocommerce 3以来已被弃用。改用woocommerce\u checkout\u create\u order\u line\u item
WC\u产品::获取库存单位($context)
-获取SKU(库存单位)-产品唯一ID。
- 有关不同选项,请参见PHP随机字符串生成器。我曾经https://stackoverflow.com/a/13212994/11987538 安塞尔密码
所以你得到:
function generate_random_string( $length = 16 ) {
return substr( str_shuffle( str_repeat( $x = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', ceil( $length / strlen( $x ) ) ) ), 1, $length );
}
function action_woocommerce_checkout_create_order_line_item( $item, $cart_item_key, $values, $order ) {
// The WC_Product instance Object
$product = $item->get_product();
// Get product SKU
$product_sku = $product->get_sku();
// Generate random string
$random_string = generate_random_string();
// Compare
if ( $product_sku == 'ABC' ) {
$item->update_meta_data( '_random_string', $random_string );
} elseif ( $product_sku == 'DEF' ) {
$item->update_meta_data( '_random_string', $random_string );
} elseif ( $product_sku == 'GHI' ) {
$item->update_meta_data( '_random_string', $random_string );
} else {
$item->update_meta_data( '_random_string', $random_string );
}
}
add_action( 'woocommerce_checkout_create_order_line_item', 'action_woocommerce_checkout_create_order_line_item', 10, 4 );
这有点奇怪,但是我很难找到如何做到这一点的答案: 我试图创建一个自定义查询,获取WooCommerce订单中包含的所有产品(及其元)。 例如,假设我有这些订单悬而未决: 产品1 产品2 产品3 产品4 产品5 产品6 我的目标是根据这些已订购的产品创建一个列表,该列表由产品的元数据进行订购。大概是这样的: 产品1 产品3 产品4 但同样,这些只是订单中的产品(包括其数量)。 我面临的问题是,数据库
当从管理员向订单添加产品时,我尝试将自定义产品元添加到订单项元。这是我的代码,它在后端什么都不做。。。
我想在不购买插件的情况下实现这一点。 不幸的是,我无法通过结帐阶段。 在这里我的步骤: //1属性的创建 //2保存属性 //3在前端显示属性 //4验证属性 //5将属性添加到购物车 //6在购物车中显示属性 因此,客户可以在产品页面中看到该字段,填充该字段并将产品添加到购物车,并在购物车页面中看到自己的自定义文本。直到现在一切都好。 但是,在退房时,我丢失了有关Embroed文本的信息,我无法
是否有一种方法可以在WooCommerce订单页面的每个产品下显示我的自定义SKU? 当我编辑产品时,自定义sku显示良好,但它不会显示在产品的订单页面中。我需要在订单上显示此信息,以便Zapier可以将其与产品的Visma帐户软件ArticleID匹配。 此尝试基于如何向WooCommerce产品添加(第二个)自定义sku字段的解决方案?
基于将产品自定义字段保存为自定义订单项元数据的WooCommerce管理手动订单 我有这些代码来显示从前端下的订单的产品重量和尺寸,但我无法让它们用于从后端手动下的订单。当我添加产品时,我看不到重量和尺寸,它们也不会显示在页面上以支付订单、收到订单和发送电子邮件。 这是我的代码: 在任何地方展示并保存产品的重量。 到处显示和保存产品尺寸。
在函数的单个产品页面中获取产品的SKU时,我遇到了很多麻烦。php。我有多个单一产品页面,我希望根据产品显示不同的文本。我已经创建了一个子主题,我正在处理函数。php文件。我不熟悉wordpress和编辑主题,所以我还不太了解操作顺序。我能够让代码循环运行,并为所有产品提供所有SKU,但这与我所处的实际页面无关。 我试过很多东西。常见的解决方案似乎是: 但那不起作用。由于某些原因,$producs