В вашем коде есть некоторые ошибки, например, две отсутствующие переменные функции, объявленные для этой ловушки.
Следующий повторный код включает отображаемое настраиваемое сообщение, когда продукт недоступен:
add_filter('woocommerce_is_purchasable', 'woocommerce_is_purchasable_filter_callback', 10, 2 );
function woocommerce_is_purchasable_filter_callback( $purchasable, $product ) {
$months = (array) get_field('availability');
$purchasable = in_array( date('F'), $months ) ? $purchasable : false;
return $purchasable;
}
add_action( 'woocommerce_single_product_summary', 'unavailable_product_display_message', 20 );
function unavailable_product_display_message() {
global $product;
if(! $product->is_purchasable() ){
echo '<p style="color:#e00000;">' . __("This product is currently unavailable.") . '</p>';
}
}
Код помещается в файл function.php вашей активной дочерней темы (или активной темы).Протестировано и работает.
Вы также можете вместо отобразить отключенную кнопку с коротким текстом, заменив в моемкод:
echo '<p style="color:#e00000;">' . __("This product is currently unavailable.") . '</p>';
По этому:
echo '<a class="button alt disabled">' . __("Currently unavailable.") . '</a>';