Активация плагина изнутри страницы продукта Woocomerce с помощью флажка - PullRequest
0 голосов
/ 07 февраля 2019

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

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

$scfwc_render_location = get_theme_mod( 'scfwc_render_location');
    switch ( $scfwc_render_location ) :
        case 'scfwc_after_heading' :
            add_action( 'woocommerce_single_product_summary', array( $this, 'scfwc_html_product' ), 6 );
            break;
        case 'scfwc_after_price' :
            add_action( 'woocommerce_single_product_summary', array( $this, 'scfwc_html_product' ), 11 );
            break;
        case 'scfwc_after_short_desc' :
            add_action( 'woocommerce_single_product_summary', array( $this, 'scfwc_html_product' ), 21 );
            break;
        case 'scfwc_after_add_cart' :
            add_action( 'woocommerce_single_product_summary', array( $this, 'scfwc_html_product' ), 31 );
            break;
        case 'scfwc_after_single_product_summary' :
            add_action( 'woocommerce_product_thumbnails', array( $this, 'scfwc_html_product' ), 30 );
        break;
    endswitch;

1 Ответ

0 голосов
/ 07 февраля 2019

Я не знаю, на какой класс $this ссылается или как получить его экземпляр, так что это псевдокод.Но когда у вас есть метаполе, которое отображается и сохраняется в администраторе, вы можете использовать значение метаполя для условного добавления метода scfwc_html_product().

function kia_conditionally_add_countdown() {
    global $product;
    if( $product->get_meta( '_show_countdown', true ) ) {
        $my_class = somehow_get_instance_of_class();
        add_action( 'woocommerce_single_product_summary', array( $my_class, 'scfwc_html_product' ), 11 );
    }   
}
add_action( 'woocommerce_before_single_product_summary', 'kia_conditionally_add_countdown' );

Это не учитывает мод темы и просто жестко кодирует приоритет / позицию.При необходимости вы можете добавить поддержку theme_mod внутри условной логики.

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