Как я могу отобразить контактную форму для товаров, отсутствующих на складе, в WooCommerce?


Здравствуйте, мастера WordPress,

У меня проблема с WooCommerce, с которой мне нужна помощь. Я больше занимаюсь разработкой интерфейсных программ, и мои попытки решить эту проблему до сих пор были бесплодными.

Что я пытаюсь сделать: Всякий раз, когда товар отсутствует на складе, я хочу отображать пользовательское сообщение об отсутствии на складе (готово) и контактную форму под ним (нужна помощь).

Я использую контактную форму 7 и у меня есть шорткод, который я обычно вставляю. В то время как я понял как вставить его с помощью echo do_shortcode('[name_of_shortcode]'); Я не знаю, как сделать так, чтобы он отображался только на продуктах, которых нет в наличии.

Вот пользовательский код, который я в настоящее время использую в своей дочерней теме function.php файл:

add_filter('woocommerce_get_availability', 'availability_filter_func');
function availability_filter_func($availability)
{
$availability['availability'] = str_ireplace('Out of stock', 'This class is not currently available at a scheduled time, but is instead being scheduled in response to customer interest.  If you are interested in taking this class, please provide your contact information and we will reach out to with dates that are currently under consideration.', $availability['availability']);
return $availability;
}

Как вы можете видеть, мне удалось изменить обычное сообщение "Нет в наличии", но я понятия не имею, как вызвать шорткод после сообщения.

Гуру WordPress и WooCommerce, что мне делать?

Спасибо вам за вашу помощь и за то, что нашли время для обучения я!

Тина

Author: vervex, 2017-07-31

1 answers

Вам нужно использовать крючки, предоставляемые WooCommerce. Я бы попробовал сделать это следующим образом (непроверенный):

add_action('woocommerce_single_product_summary', 'add_contact_form', 20);

function add_contact_form() {
    global $product;
    if(!$product->is_in_stock( )) {
       echo do_shortcode('[name_of_shortcode]');
    }
}
 2
Author: Pascal Knecht, 2017-07-31 08:37:46