• DONATE to NULLED!
    Вы можете помочь Форуму и команде, поддержать финансово.
    starwanderer - модератор этого раздела будет Вам благодарен!

Помощь Переопределить классы

Belena27089

Мой дом здесь!
Регистрация
16 Авг 2016
Сообщения
462
Реакции
433
Не нашла. Как можно переопределить классы WooCommerce Blocks в теме?
 
Вот мне надо внести изменения в carousel-slider в файл \wp-content\plugins\carousel-slider\templates\public\product-carousel.php, я его и так и сяк пытаюсь в тему вставить, но он не реагирует на мои изменения , только в основной папке.
В wp-content\plugins\woo-gutenberg-products-block\assets\php\class-wgpb-block-grid-base.php
Код:
**
    * Get the price.
    *
    * @param WC_Product $product Product.
    * @return string Rendered product output.
    */
    protected function get_price_html( $product ) {
        if ( empty( $this->attributes['contentVisibility']['price'] ) ) {
            return '';
        }
        return sprintf(
            '<div class="wc-block-grid__product-price price">%s</div>',
            $product->get_price_html()
        );
    }

/**
     * Get the "add to cart" button.
     *
     * @param WC_Product $product Product.
     * @return string Rendered product output.
     */
    protected function get_add_to_cart( $product ) {
        $attributes = array(
            'aria-label'       => $product->add_to_cart_description(),
            'data-quantity'    => '1',
            'data-product_id'  => $product->get_id(),
            'data-product_sku' => $product->get_sku(),
            'rel'              => 'nofollow',
            'class'            => 'wp-block-button__link add_to_cart_button',
        );

        if ( $product->supports( 'ajax_add_to_cart' ) ) {
            $attributes['class'] .= ' ajax_add_to_cart';
        }

        return sprintf(
            '<a href="%s" %s>%s</a>',
            esc_url( $product->add_to_cart_url() ),
            wc_implode_html_attributes( $attributes ),
            esc_html( $product->add_to_cart_text() )
        );
    }

класс тега , допустим, добавить-изменить
 
Последнее редактирование:
скопируйте этот файл шаблона в папку с темой и делайте с ним что хотите. при обновлении плагинов, этот файл в папке с темой не будет обновляться.

для удобства некоторые еще создают в папке с темой подпаку с названием плагина, чтобы файлы не перемешались:

вашатема/carousel-slider/product-carousel.php
 
Вот мне надо внести изменения в carousel-slider в файл \wp-content\plugins\carousel-slider\templates\public\product-carousel.php, я его и так и сяк пытаюсь в тему вставить, но он не реагирует на мои изменения , только в основной папке.
В wp-content\plugins\woo-gutenberg-products-block\assets\php\class-wgpb-block-grid-base.php
Код:
**
    * Get the price.
    *
    * @param WC_Product $product Product.
    * @return string Rendered product output.
    */
    protected function get_price_html( $product ) {
        if ( empty( $this->attributes['contentVisibility']['price'] ) ) {
            return '';
        }
        return sprintf(
            '<div class="wc-block-grid__product-price price">%s</div>',
            $product->get_price_html()
        );
    }

/**
     * Get the "add to cart" button.
     *
     * @param WC_Product $product Product.
     * @return string Rendered product output.
     */
    protected function get_add_to_cart( $product ) {
        $attributes = array(
            'aria-label'       => $product->add_to_cart_description(),
            'data-quantity'    => '1',
            'data-product_id'  => $product->get_id(),
            'data-product_sku' => $product->get_sku(),
            'rel'              => 'nofollow',
            'class'            => 'wp-block-button__link add_to_cart_button',
        );

        if ( $product->supports( 'ajax_add_to_cart' ) ) {
            $attributes['class'] .= ' ajax_add_to_cart';
        }

        return sprintf(
            '<a href="%s" %s>%s</a>',
            esc_url( $product->add_to_cart_url() ),
            wc_implode_html_attributes( $attributes ),
            esc_html( $product->add_to_cart_text() )
        );
    }

класс тега , допустим, добавить-изменить

а вот со вторым файлом В wp-content\plugins\woo-gutenberg-products-block\assets\php\class-wgpb-block-grid-base.php
беда.. - вы не можете на него влиять извне. это не файл шаблона. тут только правкой напрямую. опять же объявление "protected" печалит тоже.
 
скопируйте этот файл шаблона в папку с темой и делайте с ним что хотите. при обновлении плагинов, этот файл в папке с темой не будет обновляться.

для удобства некоторые еще создают в папке с темой подпаку с названием плагина, чтобы файлы не перемешались:

вашатема/carousel-slider/product-carousel.php
а вот я его копирую и полностью плагин , и из папки \templates\public\ его вытаскиваю в разных вариациях , и просто прямо в тему копирую, на мои изменения в файле никак не реагирует.Как и куда его правильно прописать, создать в теме папку plugins?
 
а вот я его копирую и полностью плагин , и из папки \templates\public\ его вытаскиваю в разных вариациях , и просто прямо в тему копирую, на мои изменения в файле никак не реагирует.Как и куда его правильно прописать, создать в теме папку plugins?

движок сканирует всю папку и находит
вот у меня тот же вукоммерс из папки /wp-content/plugins/woocommerce/templates/emails
находятся в /wp-content/themes/моятемя/woocommerce/emails

главное чтобы имя файла совпадало и начало файла тоже, там в виде комментариев задается принадлежность шаблона

<?php
/**
* Customer processing order email
*
* This template can be overridden by copying it to yourtheme/woocommerce/emails/customer-processing-order.php.
*
* HOWEVER, on occasion WooCommerce will need to update template files and you
* (the theme developer) will need to copy the new files to your theme to
* maintain compatibility. We try to do this as little as possible, but it does
* happen. When this occurs the version of the template file will be bumped and
* the readme will list any important changes.
*
* @see Для просмотра ссылки Войди или Зарегистрируйся
* @AUTHOR WooThemes
* @package WooCommerce/Templates/Emails
* @version 2.5.0
*/
 
Вот так я первым делом сделала, но файл не реагирует , вукоммерс тоже так переопределён но его файлы реагируют на изменения
а не хотите на минутку убрать родной файл из папки плагина и посмотреть результат? чисто ради интереса.
а вообще надо сомтреть внутренности плагина - он должен искать шаблон - надо понять как. + наверняка есть документация к плагину в сети, где определена кастомизация
 
в основном файле пути определены так
Код:
public function define_constants() {
            define( 'CAROUSEL_SLIDER_VERSION', $this->version );
            define( 'CAROUSEL_SLIDER_POST_TYPE', $this->post_type );
            define( 'CAROUSEL_SLIDER_FILE', __FILE__ );
            define( 'CAROUSEL_SLIDER_PATH', dirname( CAROUSEL_SLIDER_FILE ) );
            define( 'CAROUSEL_SLIDER_INCLUDES', CAROUSEL_SLIDER_PATH . '/includes' );
            define( 'CAROUSEL_SLIDER_TEMPLATES', CAROUSEL_SLIDER_PATH . '/templates' );
            define( 'CAROUSEL_SLIDER_WIDGETS', CAROUSEL_SLIDER_PATH . '/widgets' );
            define( 'CAROUSEL_SLIDER_URL', plugins_url( '', CAROUSEL_SLIDER_FILE ) );
            define( 'CAROUSEL_SLIDER_ASSETS', CAROUSEL_SLIDER_URL . '/assets' );
        }
я пыталась изменить их направление в файле function.php , но видимо тоже что-то не так делаю.
просто интернет-магазины на другом движке в основном делаю, там всё переопределяется без проблем, а тут угораздило вордпресс взять).
 
а не хотите на минутку убрать родной файл из папки плагина и посмотреть результат? чисто ради интереса.
а вообще надо сомтреть внутренности плагина - он должен искать шаблон - надо понять как. + наверняка есть документация к плагину в сети, где определена кастомизация
убрала файл, он мне пишет в ответ
Код:
Warning: require(D:\OpenServer\domains\wppriaja\wp-content\plugins\carousel-slider/templates/public/product-carousel.php): failed to open stream: No such file or directory in D:\OpenServer\domains\wppriaja\wp-content\plugins\carousel-slider\shortcodes\class-carousel-slider-shortcode.php on line 114

Fatal error: require(): Failed opening required 'D:\OpenServer\domains\wppriaja\wp-content\plugins\carousel-slider/templates/public/product-carousel.php' (include_path='D:\OpenServer\domains\wppriaja\wp-content\plugins\backwpup\vendor/pear/archive_tar;D:\OpenServer\domains\wppriaja\wp-content\plugins\backwpup\vendor/pear/console_getopt;D:\OpenServer\domains\wppriaja\wp-content\plugins\backwpup\vendor/pear/http_request2;D:\OpenServer\domains\wppriaja\wp-content\plugins\backwpup\vendor/pear/mail_mime;D:\OpenServer\domains\wppriaja\wp-content\plugins\backwpup\vendor/pear/mail_mime-decode;D:\OpenServer\domains\wppriaja\wp-content\plugins\backwpup\vendor/pear/net_url2;D:\OpenServer\domains\wppriaja\wp-content\plugins\backwpup\vendor/pear/pear-core-minimal/src;D:\OpenServer\domains\wppriaja\wp-content\plugins\backwpup\vendor/pear/pear_exception;.;d:/openserver/modules/php/PHP-7.1;d:/openserver/modules/php/PHP-7.1/PEAR/pear') in D:\OpenServer\domains\wppriaja\wp-content\plugins\carousel-slider\shortcodes\class-carousel-slider-shortcode.php on line 114
 
в основном файле пути определены так
Код:
public function define_constants() {
            define( 'CAROUSEL_SLIDER_VERSION', $this->version );
            define( 'CAROUSEL_SLIDER_POST_TYPE', $this->post_type );
            define( 'CAROUSEL_SLIDER_FILE', __FILE__ );
            define( 'CAROUSEL_SLIDER_PATH', dirname( CAROUSEL_SLIDER_FILE ) );
            define( 'CAROUSEL_SLIDER_INCLUDES', CAROUSEL_SLIDER_PATH . '/includes' );
            define( 'CAROUSEL_SLIDER_TEMPLATES', CAROUSEL_SLIDER_PATH . '/templates' );
            define( 'CAROUSEL_SLIDER_WIDGETS', CAROUSEL_SLIDER_PATH . '/widgets' );
            define( 'CAROUSEL_SLIDER_URL', plugins_url( '', CAROUSEL_SLIDER_FILE ) );
            define( 'CAROUSEL_SLIDER_ASSETS', CAROUSEL_SLIDER_URL . '/assets' );
        }
я пыталась изменить их направление в файле function.php , но видимо тоже что-то не так делаю.
просто интернет-магазины на другом движке в основном делаю, там всё переопределяется без проблем, а тут угораздило вордпресс взять).


мда, видать разрабы не потрудились сделать подгрузку шаблонов из темы.. очень странно...

попробуйте обмануть define и переопределить через const ,если у вас php 5.6+
 
Назад
Сверху