Woocommerce: добавьте контент HTML в указанные c страницы, которые можно подключить с помощью настраиваемых полей WordPress - PullRequest
0 голосов
/ 29 марта 2020

Я пытаюсь найти способ добавления пользовательского html контента практически везде, где его можно подключить в woocommerce через настраиваемые поля WordPress.

У меня есть код ниже, но он не работает?

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

Имя настраиваемого поля: before_single_product_content

Значение настраиваемого поля: Ваше настраиваемое HTML разметка.

Я добавил функции своей дочерней темы. php:

/** WooCommerce woocommerce_before_single_product - content **/
function before_single_product() {
   global $post;
   $product_id = $post->ID;

   $BeforeSingleProductContentValue = get_post_meta($product_id,'before_single_product_content',true);
   if(!$BeforeSingleProductContentValue) return;
   echo ''.$BeforeSingleProductContentValue.'';
}
add_action('woocommerce_before_single_product','before_single_product');

Дубликат для одного продукта, например:

/** WooCommerce woocommerce_after_single_product - content **/
function after_single_product() {
   global $post;
   $product_id = $post->ID;

   $AfterSingleProductContentValue = get_post_meta($product_id,'after_single_product_content',true);
   if(!$AfterSingleProductContentValue) return;
   echo ''.$AfterSingleProductContentValue.'';
}
add_action('woocommerce_after_single_product','after_single_product');

Любые советы приветствуются!

1 Ответ

0 голосов
/ 29 марта 2020

Использование ловушек действий

Чтобы выполнить собственный код, вы подключаетесь с помощью ловушек действий do_action('action_name');


Использование ловушек для фильтров

Повсюду называются ловушки для фильтров, использующие apply_filter( 'filter_name', $variable );

С фильтрами , вы должны вернуть значение .


Попробуйте сделать это следующим образом

/** WooCommerce woocommerce_before_single_product - content **/
function before_single_product() {
    global $product;

    // Get product id
    $product_id = $product->get_id();

    $BeforeSingleProductContentValue = get_post_meta( $product_id, 'before_single_product_content', true );

    if ( !empty($BeforeSingleProductContentValue) ) {
        echo $BeforeSingleProductContentValue;
    }
}
add_action('woocommerce_before_single_product','before_single_product');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...