我是PHP编程的初学者。我想创建一个PHP文件,其中order_status
从预定义的顺序(在我的情况下为108)变为已完成。
因此我需要woocommerce函数get_order($ID)
和update_status
,但我不知道如何在我的PHP中使用它们。我希望你理解我的问题。从Java我可以想象我需要从一个类或类似的东西中获取一个实例?
这是我到目前为止的代码:
<?php $ord = new WC_Order(108); $ord->update_status('completed'); ?>
当我打开页面时,收到以下错误:
Fatal error: Uncaught Error: Class 'WC_Order' not found (...)
答案 0 :(得分:2)
一般来说,在Wordpress / WooCommerce中,您将包含您的功能代码:
function.php
文件您还可以在以下位置启用一些代码:
现在要执行该功能,您将需要一个将执行您的功能的事件。
在(Wordpress) Woocommerce中,有很多action hooks会在您可用于执行功能的某些特定事件上触发。在这种情况下,您的功能将被挂钩 (准备在特定事件上执行)。
如果您想要更改特定订单的状态,最好在后端的相关订单编辑页面中执行此操作。
例如:
例如,当客户在order-received
终点(谢谢页面)结账后提交订单时,您可以更改订单状态:
add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_complete_order');
function custom_woocommerce_auto_complete_order( $order_id ) {
if ( ! $order_id ) return;
// Get an instance of the WC_Order object
$order = wc_get_order( $order_id );
// Change order status to "completed"
$order->update_status( 'completed' );
}
此代码是官方代码段:Automatically Complete Orders。
这是一个很好的例子,可以向您展示事情是如何运作的......所以在您的情况下,您使用的是update_status()
response.headers=[{Location:"foo"}]
方法。
现在有了这个代码库,你可以像这个答案一样细化行为:
WC_Order
class
与订单相关:WooCommerce: Auto complete paid Orders (depending on Payment methods)