如何通过订单ID获取WooCommerce订单详细信息.我试过这个,但对我不起作用.
$order = new WC_Order( $order_id );
Run Code Online (Sandbox Code Playgroud) 我试图通过使用以下方法从Woocommerce的订单中提取项目元值:
$data = wc_get_order_item_meta( $item, '_tmcartepo_data', true );
Run Code Online (Sandbox Code Playgroud)
但是,我找不到将order_item_id作为第一个参数的方法(使用get_items)
global $woocommerce, $post, $wpdb;
$order = new WC_Order($post->ID);
$items = $order->get_items();
foreach ( $items as $item ) {
$item_id = $item['order_item_id']; //???
$data = wc_get_order_item_meta( $item_id, '_tmcartepo_data', true );
$a = $data[0]['value'];
$b = $data[1]['value'];
echo $a;
echo $b;
}
Run Code Online (Sandbox Code Playgroud)
我的意思是这个订单item_id(1和2)
我该怎么办?
谢谢.
在WooCommerce中,我想在客户成功签出后向API发送请求.它基本上是一个网站,客户在那里销售在线课程(像udemy).
当客户退房时,我想发送API请求并为该特定课程注册用户.我尝试了几个WooCommerce钩子,但没有一个对我有效.
这是我正在使用的代码:
add_action('woocommerce_checkout_order_processed', 'enroll_student', 10, 1);
function enroll_student($order_id)
{
echo $order_id;
echo "Hooked";
}
Run Code Online (Sandbox Code Playgroud)
我在激活的插件中编写此代码,为了方便起见,我目前正在使用Cash on Delivery方法.
任何人都可以指出我出错的地方,因为当我结账时,我无法看到消息"挂钩"我正在打印也不是$order_id?
我带我到成功页面,并没有显示我正在打印的这两件事.
如何获得产品woocommerce的元数据?我有我的产品现场定制,我需要获取这些数据.
{"ID":151,
"ORDER_ID":251,
"NAME":"car",
"PRODUCT_ID":87,
"VARIATION_ID":0,
"QUANTITY":1,
"TAX_CLASS":"",
"SUBTOTAL":"3",
"SUBTOTAL_TAX":"0",
"TOTAL":"3",
"TOTAL_TAX":"0",
"TAXES":{"TOTAL":[],
"SUBTOTAL":[]},
"META_DATA":[{"ID":1433,
"KEY":"my_car",
"VALUE":"red"}]}
Run Code Online (Sandbox Code Playgroud)
但总是结果是一样的,我无法进入现场meta_data.该领域ID和name我有权访问.
我用get_data()和get_item(),但是当我尝试访问get_data()到外地 meta_data它给我这个错误:
UNCAUGHT ERROR: CANNOT USE OBJECT OF TYPE WC_DATETIME AS ARRAY IN
Run Code Online (Sandbox Code Playgroud)
并且get_item(),meta_data由于受到保护,该值为null.
我怎样才能获得这些价值?
对于页面“woocommerce_thankyou”上的 Api 需要获取 sku。我有:
$order = wc_get_order( $order_id );
foreach ($order->get_items() as $item_key => $item_values):
$product = new WC_Product($item_id);
$item_sku[] = $product->get_sku();
endforeach;
Run Code Online (Sandbox Code Playgroud)
但行不通。
情况就是这样.我有一个用作市场的woocommerce网站.我正在销售游戏,因为有些购买者会收到蒸汽钥匙.为此,我正在研究一个关键的归属系统,所以通过进入一个页面,密钥将是用户的属性.
为此,我想检查当前用户(登录和页面上)所做的所有订单,并检查他购买的游戏.
我在这里找到了一些非常有用的信息:如何获取WooCommerce订单详情
但是,我无法获得当前用户的所有订单.我首先考虑发出一个SQL请求,但是我没有在订单和用户之间找到数据库上的链接.
你有领导吗?
我目前正在自定义客户在我的网站上购买后收到的电子邮件(客户处理订单,客户完成订单等)。我已经将电子邮件文件夹从Woocommerce复制到了我的孩子主题。
我正在做的事情是使用自己的模板,然后使用Woocommerce类/ API /函数引入客户订单的相关详细信息。
到目前为止,我已经设法添加了以下信息:
我主要通过使用变量function / class $ order(IE id;?>,billing_first_name;?>)来完成此操作
我的问题是我无法成功显示产品/商品(个人)的价格。我已经寻找并搜索了实现此目的的所有方法,但是到目前为止,我尝试过的所有方法都失败了。
我在打印小计,运输,付款方式和总计(总成本)时也遇到了麻烦。也许我会以错误的方式进行操作?
这些是我用来引导我的链接
https://businessbloomer.com/woocommerce-easily-get-product-info-title-sku-desc-product-object/
任何帮助都将是极好的。这是我的代码...
<?php
foreach ($order->get_items() as $item_id => $item_data) {
$product = $item_data->get_product();
//PRODUCT NAME
$product_name = $product->get_name();
echo $product_name// THIS WORKS AND PRINTS CORRECTLY
//PRODUCT QUANTITY
$get_quantity = WC_Order_Item::get_quantity();
echo $get_quantity // THIS WORKS AND PRINTS CORRECTLY
//PRODUCT PRICE
$get_price = new WC_Order_Item_Fee::get_amount( $context );
echo $get_price // THIS DOES NOT WORK
// TRYING BELOW ALSO DOES NOT …Run Code Online (Sandbox Code Playgroud) 我正在使用“如何在 Woocommerce 中获取最新订单 ID ”答案代码,该代码通过自定义函数返回最后一个订单get_last_order_id()。
这是我获取订单商品的代码尝试:
<?php
$latest_order_id = get_last_order_id(); // Last order ID
$order = wc_get_order( $latest_order_id ); // Get an instance of the WC_Order object
$order_details = $order->get_data(); // Get the order data in an array
$order_status = esc_html( wc_get_order_status_name( $order->get_status() ) );
$order_items = $order_details['line_items'];
?>
Run Code Online (Sandbox Code Playgroud)
然后我在这段代码中使用它:
<div class="row last-order">
<div class="col-md-7">
<ul>
<?php
foreach ($order_items as $product_name) { ?>
<li><?php echo $product_name['name']; ?></li>
<?php
}
?>
</ul>
</div>
<div class="col-md-4 order-status-box"> …Run Code Online (Sandbox Code Playgroud) 在 Woocommerce 中,我试图找出如何获取客户完成订单电子邮件模板中已完成订单的产品 ID ,并将其存储为 PHP 变量。这样我就可以将其插入到外部数据库中。
我已经尝试过了,$product->get_id();但它不起作用。
如何从电子邮件模板获取 WooCommerce 3+ 中的产品 ID?
我正在做一个项目,但我一直坚持将 Woocommerce 产品类型定义为“简单”、“可变”、“分组”或“外部”……
我想要实现的目标:
在“谢谢”页面上,上面写着“谢谢。您的订单已收到。 ”。
如果产品是“简单的”,而另一个文本是产品是可变的、分组的或外部的,我想在那里显示一个特定的文本,例如:
if (product->get_type() == 'simple') {// (for simple product)
//show a text
}else {// (for variable, grouped and external product)
//show another text
}
Run Code Online (Sandbox Code Playgroud)
我已经能够使用这个:
function custome_tank_you_text($order_id) {
$order = new WC_Order( $order_id );
$items = $order->get_items();
foreach ( $items as $item ) {
$product = wc_get_product( $item['product_id'] );
$product->get_type();
}
if( $product == 'simple'){ ?>
<p class="woocommerce-notice woocommerce-notice--success woocommerce-thankyou-order-received"><?php echo apply_filters( 'woocommerce_thankyou_order_received_text', __( 'Thank you for topping up your wallet. It has …Run Code Online (Sandbox Code Playgroud)