Wordpress Woocommerce Woocommerce\订单\状态\仅在用户端处理触发器

Wordpress Woocommerce Woocommerce\订单\状态\仅在用户端处理触发器,wordpress,woocommerce,Wordpress,Woocommerce,嗨,我想问你们,这在吴哥是不是可行 我用的是这个钩子, woocommerce\u订单\u状态\u处理 我希望这个钩子只在付款后在用户端调用,这是正常的,但在管理员中如果我更改订单状态,这个钩子也会触发,我可以在管理员中禁用我的自定义钩子,并且只在用户端运行/触发吗 add_action( 'woocommerce_order_status_processing', 'order_extracode' ); function order_extracod( $order_id) { .....

嗨,我想问你们,这在吴哥是不是可行

我用的是这个钩子, woocommerce\u订单\u状态\u处理

我希望这个钩子只在付款后在用户端调用,这是正常的,但在管理员中如果我更改订单状态,这个钩子也会触发,我可以在管理员中禁用我的自定义钩子,并且只在用户端运行/触发吗

add_action( 'woocommerce_order_status_processing', 'order_extracode' );
function order_extracod( $order_id) {
.....
}
上面的代码是我添加的函数和钩子,我试过了!是_admin,但它不工作,并且仍在管理命令中处理此功能


感谢TIA

woocommerce无法区分触发woocommerce\u订单\u状态\u处理操作的人

如果您希望在用户完成支付时发生一些事情,您可以尝试抽象wc order.php中的woocommerce\u payment\u complete钩子。

或者您可以使用current\u user\u can函数来确定钩子是否可以执行,如下所示

if( !current_user_can( 'administrator' ) && !current_user_can( 'manage_options' ) )  {
   //do your stuff
}

这个钩子将在每次身高变化时执行。 您可以做的是决定是在前端还是在仪表板中执行代码

add_action( 'woocommerce_order_status_processing', 'order_extracode' );
function order_extracod( $order_id) {
  if( ! is_admin()){
     // Your code here
  }
}

检测您是否在仪表板中的唯一条件标记是is_admin

如果管理员想要使用前端,此解决方案不会触发挂钩,最好使用分隔管理员和前端的条件标记。