如何通过订单ID获取WooCommerce订单详细信息.我试过这个,但对我不起作用.
$order = new WC_Order( $order_id );
Run Code Online (Sandbox Code Playgroud) 通常,wooCommerce应该自动完成虚拟产品的订单.但它没有,这是一个真正的问题,甚至像BUG一样.
所以在这一点上你可以找到有用的东西(但不是很方便):
1)一个代码片段(你可以在wooCommerce docs中找到):
Run Code Online (Sandbox Code Playgroud)/** * Auto Complete all WooCommerce orders. */ add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_complete_order'); function custom_woocommerce_auto_complete_order( $order_id ) { if ( ! $order_id ) { return; } $order = wc_get_order( $order_id ); $order->update_status( 'completed' ); }但此代码段不适用于BACS*,付款时付款和支票付款方式.它适用于Paypal和信用卡网关支付方式.
*BACS 是直接银行转账付款方式
而......
2)插件: WooCommerce自动完成订单
此插件适用于所有付款方式,但不适用于其他信用卡网关付款方式.
我的问题:
在第1点中使用(作为基础)wooCommerce代码段:
如何实现基于woocommerce支付方式的条件代码?
我的意思是:如果付款方式不是"BACS","付款时付款"和"支票",则应用代码段(对于虚拟产品的付款订单,更新状态为"已完成").
我不是一个wooCommerce巨型专家编码器,所以我还没有找到如何在woocommerce订单中定位付款方式.
一些帮助将是非常好的.
谢谢.
我需要以编程方式创建一个Woocommerce订单,但是使用'旧'Woocommerce使这个程序非常脏.
我必须使用许多update_post_meta调用手动插入所有类型的数据库记录.
寻找更好的解决方案.
我正在为我的网站创建一个自定义插件.
在这个插件的某些部分,我需要wp_postmeta为每个订单存储额外的元数据.
我在我的插件类中添加了这个:
`add_action ('woocommerce_before_checkout_process', array( &$this, 'add_item_meta', 10, 2) );`
Run Code Online (Sandbox Code Playgroud)
这是add_item_meta()功能:
function add_item_meta( $item_id, $values ) {
wc_add_order_item_meta($item_id, '_has_event', 'yes' );
}
Run Code Online (Sandbox Code Playgroud)
此功能不完整,但此代码没有任何反应; 我想我需要使用另一个钩子,但我找不到合适的钩子.
有人对这个有了解吗?
我还有另一个问题$item_id:这是woocommerce全局变量,但我在我的插件中看不到它!
我的意思是我无法从我的插件或类似的东西访问此变量!
使用Woocommerce 2.6.8,我无法获得文档中描述的订单项数据信息,这里也是SO.
我想要的只是得到行项目价格和数量,这应该是这样简单:
$order = new WC_Order( $order_id );
$order_items = $order->get_items();
foreach ($order_items as $items_key => $items_value) {
echo $items_value['name']; //this works
echo $items_value['qty']; //this doesn't work
echo $items_value[item_meta][_qty][0]; //also doesn't work
echo $items_value['line_total']; //this doesn't work
}
Run Code Online (Sandbox Code Playgroud)
仔细观察返回的内容
Array
(
[1] => Array
(
[name] => Sample Product 1
[type] => line_item
[item_meta] =>
[item_meta_array] => Array
(
[1] => stdClass Object
(
[key] => _qty
[value] => 1
)
[2] => stdClass Object …Run Code Online (Sandbox Code Playgroud) 好了,阅读Woocommerce 3.0+的变化,似乎你不能再直接访问这个类了,所以我认为这个代码需要改变,因为它正在吐出一个错误:
$order_item_id = 15;
$order_item = new WC_Order_Item_Product($order_item_id);
$return = $order_item->get_id() ? $order_item : false;
Run Code Online (Sandbox Code Playgroud)
但是,令人尴尬的是,我不确定如何更改此代码以在此类的最新版本中使用正确的新getter和setter函数,该类不再具有构造.怎么做得好?我没有看到任何get关于获得订单项的功能与上述相同.
https://docs.woocommerce.com/wc-apidocs/class-WC_Order_Item_Product.html
也许我在这里忽视一些事情?
我必须将订单导出到一个文件,这是我的代码来完成订单:
$orders = Mage::getModel('sales/order')->getCollection()
->addAttributeToSelect(array('status', 'ncm'))
->addFieldToFilter(
array(
array('attribute' => 'status', 'eq' => 'complete')
)
);
$order = $orders->getFirstItem();
//print_r($order);
//exit;
//foreach($orders as $order){
$id = $order->getIncrementId();
$payment = $order->getPayment();
$method = $payment->getMethodInstance();
print_r($payment);
//}
Run Code Online (Sandbox Code Playgroud)
我需要打印一些关于付款的信息,比如方法,金额,拆分的几个月,如果是信用卡,我需要交易的重新标识ID,所以列表继续
我怎样才能做到这一点?
请解释我在Magento2网站上删除测试订单的正确方法.我从'sales_order'表中删除了所有记录,但后端仍然存在订单.
当我尝试以编程方式更新WP_Ajax挂钩期间的订单时.IE浏览器.
$order = wc_create_order($order_data);
$order->add_product( get_product( $membership_product_ids[0] ), 1 );
$order->set_address( $address, 'billing' );
$order->set_address( $address, 'shipping' );
$order_id = $order->id;
$order->update_status('completed');
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
警告:DOMXPath :: query():第299行/wp-content/plugins/woocommerce/includes/libraries/class-emogrifier.php中的表达式无效
警告:DOMXPath :: query():第299行/wp-content/plugins/woocommerce/includes/libraries/class-emogrifier.php中的表达式无效
警告:在第302行的/wp-content/plugins/woocommerce/includes/libraries/class-emogrifier.php中为foreach()提供的参数无效
警告:DOMXPath :: query():第299行/wp-content/plugins/woocommerce/includes/libraries/class-emogrifier.php中的表达式无效
警告:DOMXPath :: query():第299行/wp-content/plugins/woocommerce/includes/libraries/class-emogrifier.php中的表达式无效
警告:在第302行的/wp-content/plugins/woocommerce/includes/libraries/class-emogrifier.php中为foreach()提供的参数无效
如果我删除该update_status功能,它不会出错.
我正在为我的一个电子商务Wordpress网站使用WooCommerce插件.我想在woocommerce管理区域的我的订单列表页面添加一些列.我无法找到添加它的位置.
任何人都可以建议我需要修改哪个模板页面以满足我的要求吗?