我正在使用WooCommerce预订,客户可以要求预订,需要得到管理员的确认。如果管理员不确认预订,我希望订单在24小时后自动取消。
从更改伍兹商务订单状态后X时间已通过回答代码,我正在寻找任何协助,以满足我的要求,使用WP cron。
我带着一个能解决我的需求的工作方案回来了。我希望它能帮到某人。
计划每30分钟运行一次事件,检查是否有超过24小时的挂起订单,并取消这些订单。
* Create custom scheduled hook * * @param $schedules * @return mixed */ function custom_cron_schedule( $schedules ) { if ( ! isset( $schedules["30min"] ) ) { $schedules["30min"] = array( 'interval' => 30 * 60, 'display' => __( 'Once every 30 minutes' ) ); } return $schedules; } add_filter( 'cron_schedules','custom_cron_schedule' ); //Schedule an action if it's not already scheduled if ( ! wp_next_scheduled( 'custom_pending_orders_hook' ) ) { wp_schedule_event( time(), '30min', 'custom_pending_orders_hook' ); } add_action( 'custom_pending_orders_hook', 'custom_cancel_pending_orders' ); /** * Function to run on the scheduled event, checking for orders older than 24 hours * */ function custom_cancel_pending_orders() { // Get bookings older than 24 hours and with pending status $args = array( 'post_type' => 'wc_booking', 'posts_per_page' => -1, 'post_status' => 'pending-confirmation', 'date_query' => array( array( 'before' => '24 hours ago' // hours ago ) ) ); // do the query $query = new \WP_Query( $args ); // The Loop if ( $query->have_posts() ) { // Get the posts $bookings = $query->posts; // Loop through posts foreach ( $bookings as $booking ) { if ( class_exists('WC_Booking') ) { // Get the booking object using the id of the post $wc_booking = new \WC_Booking( $booking->ID ); // Change the status if ( $wc_booking ) { $wc_booking->update_status( 'cancelled' ); } } } } else { // no posts found, moving on } // Restore original Post Data wp_reset_postdata(); }
我WooCommerce,我正在使用“更改管理付款状态返回到WoocommercePending order status unpayed for WoocommercePending”答案代码,当订单状态在后端手动更改为pending时,重置订单的已付款状态。 例如,如果订单状态从“完成”更改为“挂起”,则删除以下内容:“支付日期为4月2日,2019年@5:29 PM” 现在我这里的问题是在订单
我用woocommerce做了一个简单的网店,有三种付款方式。理想情况下,可通过直接银行转账和开户。订单ID是根据付款方式创建的。例如,如果使用iDEAL付款,订单id将变为ID190100;如果以账户付款,订单id将变为RK190100。我从BeRocket的插件“WooCommerce的顺序订单号”中得到了这一点,但这些都是在付款完成之前创建的。订单ID必须在付款后才能最终确定。现在,尚未付款
我使用WooCommerce通过电话/电子邮件等手动接受订单,我使用后端记录订单,手动添加订单。 目前,当生成“待付款”的订单作为状态时,库存会自动减少/扣减。我不希望这种情况发生。理想情况下,我只想减少库存,当订单被标记为“正在处理”,然后付款,然后采取。 我明白这是如何WooCommerce工作回来,有没有一种方法来避免库存减少,直到某一个状态已经被选中? 我已经在functions.php中
我在我的WooCommerce安装中创建了一个自定义订单状态,称为Quote。 现在我想收到一封电子邮件,每当收到一个订单,已经给出了状态栏。我根据这篇有用的文章创建了一个插件:http://www.skyverge.com/blog/how-to-add-a-custom-woocommerce-email/ 我的插件基本上是从文章复制的,我只是更改了电子邮件的内容。我想改变的是什么触发了电子邮
说明 此消息用于确认或取消一个预订单 请求地址 http://api.dc78.cn/Api/bk_state 请求方式 GET 请求参数 参数 参数名称 必填 描述 范例 id 预订单编号 state 状态 目前取值有两个:1,确认预定,-1,取消预订 op 操作员 可选 table 预订桌台 可选 返回 status:1-成功,0-失败 请求方式 INI 请求参数 [action] 描述 ac
首先,感谢一个人帮我写了一个脚本,将订单状态更改为完成(脚本如下)。 不幸的是,它不会触发订阅进入活动状态。当我在WooCommerce中手动更改订单状态时,它会这样做。所以我的想法是根据给定的订单号激活订阅。 如何根据WooCommerce中的order_id将订阅状态从“待定”更改为“活跃”? 这里有一个代码,当我使用100%优惠券时,它会改变订单状态:在functions.php 我发现像这