我需要在收到付款后自动更改已完成的订单状态,但仅限于订单状态为“正在处理”.我找到了片段,在每种情况下使订单状态完成的原因,但是在成功付款更改后我的付款插件返回数据并更改“处理”的订单状态.我想在成功后将其更改为“已完成”,如果状态不是“处理”,则不要更改它.我遇到的主要问题是我不知道如何获得收到的状态订单.

这是我的代码:

add_filter( 'woocommerce_thankyou','update_order_status',10,2 );

function update_order_status( $order_id ) {
   $order = new WC_Order( $order_id );
   $order_status = $order->get_status();    
   if ('processing' == $order_status) {    
       $order->update_status( 'completed' );    
    }    
 //return $order_status;
}

我已经弄清楚了.这是工作代码:

add_filter( 'woocommerce_thankyou',1 );

function update_order_status( $order_id ) {
  if ( !$order_id ){
    return;
  }
  $order = new WC_Order( $order_id );
  if ( 'processing' == $order->status) {
    $order->update_status( 'completed' );
  }
  return;
}
更新:与WooCommerce版本3的兼容性

基于:WooCommerce – Auto Complete paid virtual Orders (depending on Payment methods),您还可以处理条件中的所有付款方式:

// => not a filter (an action hook)
add_action( 'woocommerce_thankyou','custom_woocommerce_auto_complete_paid_order',1 );
function custom_woocommerce_auto_complete_paid_order( $order_id ) {
    if ( ! $order_id )
        return;

    $order = new WC_Order( $order_id );

    // No updated status for orders delivered with Bank wire,Cash on delivery and Cheque payment methods.
    if ( get_post_meta($order_id,'_payment_method',true) == 'bacs' || get_post_meta($order_id,true) == 'cod' || get_post_meta($order_id,true) == 'cheque' ) {
        return;
     }
    // "completed" updated status for paid "processing" Orders (with all others payment methods)
    elseif ( $order->has_status( 'processing' ) ) {
        $order->update_status( 'completed' );
    }
    else {
        return;
    }
}

php – 如何在WooCommerce中支付后检查订单状态的更多相关文章

  1. android – 移动应用程序的WooCommerce API

    我打算为WooCommerce商店开发原生移动Android应用程序.我在这里查看了他们的RESTapi文档:http://docs.woocommercev2.apiary.io/我已经开始测试了,但是当我做不同的电话时GET/order让我们说它会返回商店的所有订单.有谁知道如何使用他们的API开发最终用户应用程序.例如:PUT/order(为登录用户创建订单)GET/order(获取登录用户

  2. 如何在woocommerce中的产品数据选项卡中添加自定义选项卡,然后将输入保存在数据库中并显示在订单详细信息页面上

    实例我尝试了这段代码来创建自定义选项卡和输入,现在我正在寻找如何在订单详细信息页面上保存和显示输入文本。我想在新的自定义选项卡中添加文本,并在订单详情页中显示该文本

  3. 下单时无法触发操作

    我想在csv文件中写入产品库存价值可能发生的任何变化。我已经编写了以下代码,当在管理页面中手动更改库存时,或者当订单被标记为取消或终止时,这些代码可以完美地工作,但当下了新订单时,它不起作用。我如何更改代码,以便在下订单时触发代码?

  4. 执行'更新后'重力后期创建后的动作?

    我正在使用GravityForms插件“高级后期创作”在市场上制作woocommerce产品。所制作的产品在创建时不会显示在用户的仪表板中,而是在管理员后端的“产品”列表中以及站点本身中可见。当我检查产品元时,只有少数是由重力形式制成的。只需点击产品上的更新,似乎会触发与GF使用的过程不同的过程,突然有更多的数据应用到产品上,并且在用户的仪表板中可见。因此,我在函数文件中使用了一段代码来尝试运行更新后函数,但它似乎不起作用。

  5. 如何只对woocommerce产品进行星级评定,而不需要评论

    我正在寻找代码,使我能够收集WooCommerce产品的明星评论,而无需用户提供任何评论。下面的这段代码通过消除评论框让我走了那么远,但WordPress不允许保存提交内容。

  6. php – WooCommerce – 显示价格包含产品页面的税

    我正在使用WooCommerceforwordpress.我列出的项目不包括增值税.我需要在产品页面上单独显示价格,增值税和增值税(如结帐页面).我找不到这样做的插件.我怎样才能做到这一点?WooCommercev3.0.0及更高版本从WooCommerce3.0版开始,不推荐使用函数woocommerce_price(),方法get_price_including_tax()也是如此.您应该使用

  7. php – 在WordPress上将类别描述移到页面底部

    我真的需要帮助将类别描述移动到分页和页脚之间的类别页面的底部?我完全不知道要查找哪个文件…

  8. php – 输出与标签相关的帖子

    我正在使用wordpress3.9和WooCommerce2.1.8,并想知道如何显示用户当前正在查看的四行相关帖子的单行,这与帖子的标签或标签相关,而不是类别在…

  9. php – 在woocommerce中注册并重定向到登录页面时阻止自动登录?

    action=register经过大量的搜索,我找到了解决方案第1步:添加WPApproveUser第二步:将这些代码添加到你的主题功能文件中

  10. php – 如何在woocommerce中为购物车创建自定义折扣

    我在WooCommerce中创建了一个插件,并且在向CART/CHECKOUT页面添加自定义折扣时遇到了一个小问题.如何在不创建优惠券的情况下将自定义折扣应用于购物车?假设我想在购物车页面上给予5美元的折扣.我怎样才能做到这一点?

随机推荐

  1. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  2. PHP函数学习之PHP函数点评

    PHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助

  3. ecshop2.7.3 在php5.4下的各种错误问题处理

    将方法内的函数,分拆为2个部分。这个和gd库没有一点关系,是ecshop程序的问题。会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。进过本地测试,includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可

  4. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  5. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  6. zen_cart实现支付前生成订单的方法

    这篇文章主要介绍了zen_cart实现支付前生成订单的方法,结合实例形式详细分析了zen_cart支付前生成订单的具体步骤与相关实现技巧,需要的朋友可以参考下

  7. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  8. PHP+jquery+CSS制作头像登录窗(仿QQ登陆)

    本篇文章介绍了PHP结合jQ和CSS制作头像登录窗(仿QQ登陆),实现了类似QQ的登陆界面,很有参考价值,有需要的朋友可以了解一下。

  9. 基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. Yii2中组件的注册与创建方法

    这篇文章主要介绍了Yii2之组件的注册与创建的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

返回
顶部