Intereting Posts
использование add_action без пользовательского плагина или темы получить сообщения от meta_key из внутреннего ключа post meta Удалить сообщение из последних сообщений через месяц только с определенным тегом Как установить заголовок x-priority = null при использовании плагина WP e-commerce? pre_get_posts – задавать запросы hierachy запрос, если на странице / 2 /? В чем разница с get_sidebar и dynamic_sidebar? Могу ли я иметь два файла single.php и иметь один дисплей только для сообщений и других комментариев для этого конкретного сообщения? Панель параметров панели администратора Предупреждение: Недопустимое смещение строки на странице параметров темы Настройка виджета WordPress – категория продуктов Я не могу создать новую категорию Идентификатор страницы WordPress Как синхронизировать поля профиля пользователя в многопользовательском режиме? Ссылка на новую вкладку меню «Меню»

как получить 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 даже если предыдущая проверка не удалась.