我已经在我的woocommerce安装中创建了一个新的自定义订单状态"等待运费计算",我的客户有一些非常复杂的产品,必须手动计算发货,然后发送发票。
我按照指南创建了自定义订单状态,但只要订单具有该状态,订单就不再可编辑
我希望我的新自定义状态仍然可以保持订单的可编辑状态。
编辑改变了上面的一些细节,所以整个问题更有意义:
原来我完全采用了错误的方法,在文件abstract-wc-order.php中有一个函数is_editable()
https://github.com/woothemes/woocommerce/blob/master/includes/abstracts/abstract-wc-order.php#L2469
/**
* Checks if an order can be edited, specifically for use on the Edit Order screen
*
* @access public
* @return bool
*/
public function is_editable() {
if ( ! isset( $this->editable ) ) {
$this->editable = in_array( $this->get_status(), array( 'pending', 'on-hold', 'auto-draft' ) );
}
return apply_filters( 'wc_order_is_editable', $this->editable, $this );
}
如果我将新的订单状态添加到该数组中,那么整个事情就会按照我想要的方式运行,但是,只要我更新woocommerce,就会覆盖该更改。
我可以在插件代码中添加一些内容,使用过滤器将我的新状态添加到该数组中吗?
我已经阅读了几个小时的过滤器文档,但它似乎没有很好的例子来说明过滤器只存在于类/
中