Intereting Posts
Сообщение не отображается в категории просмотра Как получить список пользователей, которым нравится текущее сообщение в WordPress Google Maps не отображается в WordPress с помощью API-интерфейсов Google Maps Javascript API Установите сетевой аватар по умолчанию Методы интеграции данных плагина с темами Ограничить количество сообщений в шаблоне пользовательской категории – разбиение разбивки на страницы Использование композитора для управления зависимостями в plugindevelopment Перенаправить URL подстраницы на родителя без изменения URL-адреса Ошибка при использовании плагина QuickCache с плагином Mobile Smart? Прямая ссылка для публикации при выборе нескольких категорий Как упорядочить и отсортировать галерею изображений Не удается заставить add_feed работать Заблокируйте один из сайтов WP Network для незарегистрированных пользователей WordPress не открывает сообщения с номерами, если permalink – post_name SEO Дружественные URL-адреса для моих категорий плагинов

как получить post_id под woocommerce_add_to_cart_validation hook?

Я пытаюсь получить сообщение id под custom_fields_validation (), но я получаю следующее

Ошибка: попытка получить свойство не объекта в строке 116

add_action('woocommerce_add_to_cart_validation','custom_fields_validation'), 10, 3 ); public static function custom_fields_validation() { global $post; if(isRecurring($post->ID)){ if ( empty( $_POST['inputday']) ){ wc_add_notice( __( 'Please select field 1;', 'woocommerce' ), 'error' ); return false; } if ( empty( $_POST['inputtime'] )){ wc_add_notice( __( 'Please select field 2;', 'woocommerce' ), 'error' ); return false; } } return true; } 

Solutions Collecting From Web of "как получить post_id под woocommerce_add_to_cart_validation hook?"

woocommerce_add_to_cart_validation передает идентификатор продукта в качестве второго аргумента функции обратного вызова, поэтому вы можете получить доступ к нему следующим образом:

 function custom_fields_validation( $passed_validation, $product_id ) { if( isRecurring( $product_id ) ) { if ( empty( $_POST['inputday']) ){ wc_add_notice( __( 'Please select field 1;', 'woocommerce' ), 'error' ); return false; } if ( empty( $_POST['inputtime'] )){ wc_add_notice( __( 'Please select field 2;', 'woocommerce' ), 'error' ); return false; } } return $passed_validation; } add_filter( 'woocommerce_add_to_cart_validation', 'custom_fields_validation', 10, 2 ); 

Также обратите внимание, что woocommerce_add_to_cart_validation является фильтром, а не действием, поэтому я использовал apply_filters вместо add_action . Я также исправил синтаксическую ошибку, в которой у вас были дополнительные круглые скобки после 'custom_fields_validation' .

Я также обновил функцию, чтобы вернуть текущее состояние проверки. В противном случае вы можете вернуться к true даже если предыдущая проверка не удалась.