Intereting Posts
Размеры созданных изображений не совпадают. Как преобразовать XML / Свойства в .po & наоборот? Каким типом являются шаблоны WP media-modal? Виджет для показа сообщений в боковой панели на основе его идентификаторов Различные размеры эскизов Легкий (без кода) способ открыть форму в лайтбокс (плагин?) $ post не работает в плагине AJAX с настраиваемым типом сообщения Удалить мета-описание на определенных страницах Как я могу перечислить все названия страниц и идентификаторы? Интернационализировать / переводить персонализированные почтовые типы и таксономии Сохранение подсветки меню «current-menu-item»? Предложить пользователей на основе таксономии пользователей Как предотвратить закрытие оболочки WP-CLI при возникновении исключения? Потеря пользовательской постоянной ссылки при преобразовании в пользовательский тип сообщения Функция ошибки main () не является объектом для построения Ajax.php

Как переопределить скрипт плагинов

Я использую простые аукционы для плагинов woocommerce, и чтобы они соответствовали моим потребностям, я сделал некоторые настройки для файла внутри плагина. Мне нужно как-то переопределить исходную функцию или ее части с помощью моей собственной модификации. Как мне это сделать?

Оригинальная функция выглядит так:

public function __construct(){ $this->plugin_prefix = 'wc_simple_auctions'; $this->plugin_basefile = plugin_basename(__FILE__); $this->plugin_url = plugin_dir_url($this->plugin_basefile); $this->plugin_path = trailingslashit(dirname(__FILE__)); $this->auction_types = array('normal' => __('Normal', 'wc_simple_auctions'), 'reverse' => __('Reverse', 'wc_simple_auctions')); $this->auction_item_condition = array('new' => __('New', 'wc_simple_auctions'), 'used' => __('Used', 'wc_simple_auctions')); add_action('woocommerce_init', array(&$this, 'init')); //require_once( ABSPATH .'wp-includes/pluggable.php'); } 

Мне нужно, чтобы это было переоценено этим изменением:

  public function __construct(){ $this->plugin_prefix = 'wc_simple_auctions'; $this->plugin_basefile = plugin_basename(__FILE__); $this->plugin_url = plugin_dir_url($this->plugin_basefile); $this->plugin_path = trailingslashit(dirname(__FILE__)); $this->auction_types = array('normal' => __('Normal', 'wc_simple_auctions'), 'reverse' => __('Reverse', 'wc_simple_auctions')); $this->auction_item_condition = array('new' => __('Brand New', 'wc_simple_auctions'), 'used' => __('1/10', 'wc_simple_auctions'), '2/10'=> __('2/10', 'wc_simple_auctions'), '3/10'=> __('3/10', 'wc_simple_auctions'), '4/10'=> __('4/10', 'wc_simple_auctions'), '5/10'=> __('2/10', 'wc_simple_auctions'), '6/10'=> __('6/10', 'wc_simple_auctions'), '7/10'=> __('7/10', 'wc_simple_auctions'), '8/10'=> __('8/10', 'wc_simple_auctions'), '9/10'=> __('9/10', 'wc_simple_auctions'), '10/10'=> __('10/10', 'wc_simple_auctions')); add_action('woocommerce_init', array(&$this, 'init')); //require_once( ABSPATH .'wp-includes/pluggable.php'); } 

Как мне это сделать?

Добавлен фрагмент, в котором вызывается вышеупомянутое:

  public function product_write_panel(){ global $post; $product = get_product( $post->ID ); // Pull the video tab data out of the database $tab_data = maybe_unserialize(get_post_meta($post->ID, 'woo_auction_tab', true)); if(empty($tab_data)){ $tab_data[] = array(); } echo '<div id="auction_tab" class="panel woocommerce_options_panel">'; woocommerce_wp_select( array( 'id' => '_auction_item_condition', 'label' => __( 'Item condition', 'wc_simple_auctions' ), 'options' => apply_filters( 'simple_auction_item_condition',$this->auction_item_condition) ) ); 

}

Solutions Collecting From Web of "Как переопределить скрипт плагинов"

В принципе, если в плагин не включены документированные API-интерфейсы и / или фильтры, вы не должны делать ничего, кроме использования ключевых крючков, если хотите обновить его в будущем.

Если нет подходящей вещи, вы должны связаться с автором и попросить об этом, или решить, что вы берете на себя полную ответственность и просто раскошеливаете его.

В вашем конкретном случае вы можете изменить атрибут после инициализации объекта, но в следующей версии этого атрибута может быть не больше.

Изменить: поскольку есть фильтр, вам просто нужно использовать его как

 function wpse_242093_auctions($auctions) { return array('new' => __('Brand New', 'wc_simple_auctions'), 'used' => __('1/10', 'wc_simple_auctions'), '2/10'=> __('2/10', 'wc_simple_auctions'), '3/10'=> __('3/10', 'wc_simple_auctions'), '4/10'=> __('4/10', 'wc_simple_auctions'), '5/10'=> __('2/10', 'wc_simple_auctions'), '6/10'=> __('6/10', 'wc_simple_auctions'), '7/10'=> __('7/10', 'wc_simple_auctions'), '8/10'=> __('8/10', 'wc_simple_auctions'), '9/10'=> __('9/10', 'wc_simple_auctions'), '10/10'=> __('10/10', 'wc_simple_auctions')); } add_filter('simple_auction_item_condition','wpse_242093_auctions');