Существует плагин для 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-файлы в основном файле плагина. или просто внесите изменения вручную.
Мне нужно знать, есть ли лучший способ?