Intereting Posts
Как добавить строку TinyMCE, которую могут видеть все пользователи, а не просто администраторы? Как исправить разбиение на страницы после переписывания URL? то есть. www.site.com/players/type/pro/page/3/ Я хотел бы дать отзыв на главной странице Как легко проверить, сохранен ли текущий идентификатор страницы в настройке настройки SELECT max (meta_value) FROM wp_postmeta WHERE meta_key = 'price' … перестает работать, когда значение превышает 999 Нужна консультация о том, как добавлять ссылки на страницу профиля пользователя? Подтверждение электронной почты комментатору о размещенном комментарии Проблемы с add_query_arg (), не передающие переменную Получить целые <li> связанные с wp_list_pages как получить список форматов сообщений, поддерживаемых темой? Как добавить таблицу AJAX в PHP, данные которой вызывается через API Функция обратного вызова comment_post: как запустить ее в фоновом режиме. Wordpag pagination help. WP_Query в functions.php Медленный мета-запрос с несколькими мета-ключами

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