Как сделать так, чтобы PHP-функция WordPress Woocommerce применялась к определенному выбору идентификаторов продуктов? - PullRequest
0 голосов
/ 08 ноября 2019

Чего я пытаюсь достичь:
Чтобы добавить пользовательскую кнопку перенаправления, но только для определенных страниц продукта: enter image description here

Что я сделал для достижения этой цели:
Добавил новое настраиваемое поле в раздел WordPress «Пользовательские поля» в продуктах «TEST 1» и «TEST 2», которые я использую, которое установленодля перенаправления на страницу Cookies моего тестового сайта для целей этого теста:
custom fields

PHP, который я сейчас использую:

/** WooCommerce custom field - 'No Thanks' Button **/
add_action('woocommerce_after_add_to_cart_button','nothanks_redirect_button');
function nothanks_redirect_button() {
    $productID = get_the_ID($productID,'12682, 12686');
    $yourCustomLinkValue =  get_post_meta($productID,'nothanks_link_redirect_meta',true);
    echo '<a class="button" style="margin: 0 0 0 20px" href="'.$yourCustomLinkValue.'" target="_self">No Thanks</a>';    
}


Проблема:
Функция применяется ко всем продуктам по всему миру, но я хочу, чтобы она применялась только к нескольким идентификаторам продуктов, которые я объявляю (т.е. . 12682 и 12686).
Мне бы очень хотелось узнать, как заставить эту функцию объявлять себя для определенных идентификаторов категорий продуктов, если это возможно.
Я был бы очень признателен, если бы кто-то прямо указывал мне, где я пропускаютрюк. Спасибо 10

1 Ответ

1 голос
/ 09 ноября 2019

Вы можете добавить их в массив и использовать in_array().

add_action('woocommerce_after_add_to_cart_button','nothanks_redirect_button');
function nothanks_redirect_button() {
   global $post;
   $product_id = $post->ID;
   $product_ids_to_add_to = array( 1111, 2222, 3333);

   if(!in_array($product_id, $product_ids_to_add_to)) return;

  $yourCustomLinkValue =  get_post_meta($product_id,'nothanks_link_redirect_meta',true);
  echo '<a class="button" style="margin: 0 0 0 20px" href="'.$yourCustomLinkValue.'" target="_self">No Thanks</a>';   
}

Или проверить, есть ли у продукта post_meta, чтобы вам не приходилось определять его в коде для новых продуктов:


add_action('woocommerce_after_add_to_cart_button','nothanks_redirect_button');
function nothanks_redirect_button() {
   global $post;
   $product_id = $post->ID;  

   $yourCustomLinkValue =  get_post_meta($product_id,'nothanks_link_redirect_meta',true);
   if(!$yourCustomLinkValue) return;
   echo '<a class="button" style="margin: 0 0 0 20px" href="'.$yourCustomLinkValue.'" target="_self">No Thanks</a>';   
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...