Как изменить метод построения пользовательского метода доставки WooCommerce - PullRequest
0 голосов
/ 06 января 2019

Существует плагин для 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 );

Я редактирую цены с ним. Теперь мне нужно отредактировать поля формы . Параметр instance_form_fields устанавливается в функции init_form_field, и в нем нет хуков. __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-файлы в основном файле плагина. или просто внесите изменения вручную. Мне нужно знать, есть ли лучший способ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...