【问题标题】:woocommerce_order_status_processing hook is not firing on backendwoocommerce_order_status_processing 挂钩未在后端触发
【发布时间】:2016-11-07 10:55:20
【问题描述】:

当管理员手动将订单状态从待处理更改为处理付款时,我想将此管理员重定向到外部网站以完成额外步骤。在任何阶段都不应重定向客户,而应仅重定向管理员。

我已将此添加到我的 function.php,但状态更改没有任何反应:

function my_woocommerce_order_status_processing($order_id) {
  header('Location: http://www.google.com');
}
add_action('woocommerce_order_status_processing', 'my_woocommerce_order_status_processing');

请问,我怎样才能做到这一点?

【问题讨论】:

  • 当管理员手动将订单状态更改为处理付款时,应重定向管理员,而不是客户。当订单更改为处理时,管理员需要在另一个网站上标记某些内容(因此重定向)。
  • 你知道后端存在一个钩子吗?我正在查看文档,但找不到与管理员订单页面相关的任何内容。
  • 正如我所说,这个钩子只是用于前端......我不认为你可以只用一个钩子(即使是管理员)来做到这一点......但我希望有人能做好回答以解决您的问题。

标签: php wordpress woocommerce hook url-redirection


【解决方案1】:

你试过用这个钩子吗?

add_action( 'woocommerce_order_status_processing', array( $this, 'yourfunction_order_processing') );

我在后端使用这个挂钩来生成一些特殊的装箱单和自动化流程,我认为这样可以很容易地挂钩。 使用 WC 2.6 测试

【讨论】:

    【解决方案2】:
    function custom_processing($order_id) {
        if (is_admin()) {
            header('Location: http://www.google.com');
            die();
        } else {
            echo $order_id; // do whatever you want
            exit;
        }
    }
    
    add_action('woocommerce_order_status_processing', 'custom_processing');
    

    测试正常

    【讨论】:

    • 我以管理员身份登录并更改订单状态对此进行了测试
    猜你喜欢
    • 2015-05-26
    • 2017-11-03
    • 1970-01-01
    • 1970-01-01
    • 2021-06-29
    • 1970-01-01
    • 2018-06-29
    • 1970-01-01
    • 2020-05-03
    相关资源
    最近更新 更多