Добавьте контент на одну страницу продукта woocommerce через плагин

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

У кого-нибудь есть опыт с этим?

В моем плагине я попытался просто заставить это работать с некоторым кодом

public function get_product_variation_data() {
    function get_data() {
        echo '<script>';
        echo "console.info('beep');";
        echo '</script>';
    }
    add_action( 'woocommerce_after_single_product', 'get_data' );
}

Но, похоже, это вообще не работает на моей странице продукта. Может быть, мне нужно прикрепить другой крючок?

Извините, но я ответил раньше, чем Алекс… Так что это не совсем справедливо, поскольку мой ответ объясняет то же, что и его ответ. Я надеюсь, что вы примете это во внимание.

LoicTheAztec 14.03.2018 02:36

Я не видел, что вы ответили, когда я разместил свой, но если это важно для вас, я могу удалить его и попросить Джордана принять ваше ..

Alexis Vandepitte 14.03.2018 10:28
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
164
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вам необходимо добавить в конструктор вашего плагина __construct() следующее:

add_action( 'woocommerce_after_single_product', array( $this, 'get_product_variation_data' ), 5 );

Затем вне конструктора:

public function get_product_variation_data() {
    ?> 
       <script> console.info('beep'); </script>
    <?php
}

Это должно сработать…

Остерегайтесь одинарных кавычек. Вам нужно избегать окружающих звуков звукового сигнала или заключать двойные кавычки. И замените this на $this.

Alexis Vandepitte 13.03.2018 16:58
Ответ принят как подходящий

Попробуй это :

class PluginTest {
    public function __construct(){
       add_action( 'woocommerce_after_single_product', array($this, 'get_product_variation_data'));
    }

    public function get_product_variation_data(){
       echo '<script>';
       echo "console.info('beep');";
       echo '</script>';
    }
}


$plugin_test = new PluginTest();

Хорошо, что вы добавили недостающие кавычки в "get_product_variation_data"…

LoicTheAztec 13.03.2018 17:06

Другие вопросы по теме