如何修改woocommerce定制运输方法的构造方法

时间:2019-01-06 18:10:45

标签: wordpress woocommerce

有一个用于woocommerce的插件,提供了一些自定义的送货方式。它具有一个钩子,允许其他人编辑费率。

function calculate_shipping( $package = array() ) {
    ...
    $rate = apply_filters( 'pws_add_rate', array(
    'id'    => $this->get_rate_id(),
    'label' => $this->title,
    'cost'  => PWS()->convert_currency( $shipping_total )
    ), $package, $this );

    $this->add_rate( $rate );

我用它来编辑费率。 现在我需要编辑它的表单字段。在函数init_form_field中设置了instance_form_fields,并且其中没有钩子。 __construct方法启动init方法和init方法启动init_form_filed。下面是自定义方法类的概述:

class WC_Custom_Method extends WC_Shipping_Method {
    public function __construct( $instance_id = 0 ) {
       ...
        $this->init();
    }
    public function init() {
        $this->init_form_fields();
        ...
    }
    public function init_form_fields() {
        $this->instance_form_fields = array(...);
    }
    ...
}

一个丑陋的方法是阻止功能在最开始就触发并在主插件文件中编辑php文件。或者只是手动进行更改。 我需要知道还有什么更好的办法吗?

0 个答案:

没有答案