На основе кода отсюда https://stackoverflow.com/a/77626133/21533506 у меня есть следующий код: [code]add_filter('woocommerce_billing_fields', 'add_legal_person_billing_field'); function add_legal_person_billing_field($fields) { $fields['billing_company']['class'][] = 'hidden';
// Validate Billing company field add_action('woocommerce_checkout_process', 'validate_custom_checkout_fields'); function validate_custom_checkout_fields() { if (isset($_POST['billing_legal_person']) && $_POST['billing_legal_person'] === 'Company') { if (empty($_POST['billing_company'])) { wc_add_notice('Billing company is a required field.', 'error'); } if (empty($_POST['billing_cui'])) { wc_add_notice('CUI is a required field.', 'error'); } if (empty($_POST['billing_nr_reg_com'])) { wc_add_notice('Nr. Reg. Com. is a required field.', 'error'); } } }
// PHP: Replace "(optional)" with required for Billing fields add_filter('woocommerce_form_field', 'remove_checkout_optional_fields_label', 10, 4); function remove_checkout_optional_fields_label($field, $key, $args, $value) { // Only on checkout page or edit address page if (((is_checkout() && !is_wc_endpoint_url()) || is_wc_endpoint_url('edit-address'))) { // Array of fields to check $fields_to_check = ['billing_company', 'billing_cui', 'billing_nr_reg_com'];
// Hide Billing company field on checkout page load add_action('wp_head', 'checkout_legal_person_css'); function checkout_legal_person_css() { if ((is_checkout() && !is_wc_endpoint_url()) || is_wc_endpoint_url('edit-address')) : ?>