add_filter('woocommerce_checkout_fields', 'custom_override_checkout_fields'); function custom_override_checkout_fields($fields) { echo ''; echo ''; $fields['billing']['billing_documento'] = array( 'type' => 'select', 'label' => __('Tipo Documento', 'woocommerce'), 'options' => array(39=>39, 33=>33), 'required' => true, 'class' => array('form-row-wide'), 'clear' => true, ); $fields['billing']['billing_rut'] = array( 'label' => __('RUT', 'woocommerce'), 'required' => true, 'class' => array('form-row-wide'), 'clear' => true, ); $fields['billing']['billing_rzn_social'] = array( 'label' => __('Razón social *', 'woocommerce'), 'required' => false, 'class' => array('form-row-wide','billing_rzn_social_label'), 'clear' => true, ); $fields['billing']['billing_giro'] = array( 'label' => __('Giro *', 'woocommerce'), 'required' => false, 'class' => array('form-row-wide','billing_giro_label'), 'clear' => true, ); return $fields; } add_action( 'woocommerce_after_checkout_form', 'fontcl_conditionally_hide_show_new_field', 9999 ); function fontcl_conditionally_hide_show_new_field() { wc_enqueue_js( " jQuery('#customer_details').on('change', function() { $('#billing_documento option:eq(0)').text('Boleta electrónica'); $('#billing_documento option:eq(1)').text('Factura electrónica'); var values = $('#billing_documento :selected').val(); if ( values === '39' ){ $('#billing_rzn_social').prop('required', false); $('#billing_rzn_social').fadeOut(); $('#billing_rzn_social input').val(' '); $('.billing_rzn_social_label').hide(); $('#billing_giro').prop('required', false); $('#billing_giro').fadeOut(); $('#billing_giro input').val(' '); $('.billing_giro_label').hide(); }else{ $('#billing_rzn_social').prop('required', true); $('#billing_rzn_social').fadeIn(); $('.billing_rzn_social_label').show(); $('#billing_giro').prop('required', true); $('#billing_giro').fadeIn(); $('.billing_giro_label').show(); } }).change(); "); } add_filter( 'woocommerce_form_field' , 'fontcl_remove_checkout_optional_text', 10, 4 ); function fontcl_remove_checkout_optional_text( $field, $key, $args, $value ) { if( is_checkout() && ! is_wc_endpoint_url() ) { $optional = ' (' . esc_html__( 'optional', 'woocommerce' ) . ')'; $field = str_replace( $optional, '', $field ); } return $field; } add_action('woocommerce_after_checkout_validation', 'fontcl_custom_validation_billing_city', 10, 2); function fontcl_custom_validation_billing_city($fields, $error) { if('IN' != $fields['billing'] && empty($fields['billing_rzn_social']) && $fields['billing_documento'] == '33' ) { $error->add('validation', 'Razón social es un campo requerido.'); } if('IN' != $fields['billing'] && empty($fields['billing_giro']) && $fields['billing_documento'] == '33' ) { $error->add('validation', 'Giro es un campo requerido.'); } } add_action('woocommerce_admin_order_data_after_shipping_address', 'my_custom_checkout_field_display_admin_order_meta', 10, 1); function my_custom_checkout_field_display_admin_order_meta($order) { $documentos = [33=>'Factura electrónica', 39=>'Boleta electrónica']; echo '

Datos DTE

'; echo '

'.__('Tipo Documento').':
'.$documentos[get_post_meta($order->get_id(), '_billing_documento', true)].'

'; echo '

'.__('RUT').':
'.get_post_meta($order->get_id(), '_billing_rut', true).'

'; echo '

'.__('Razón social').':
'.get_post_meta($order->get_id(), '_billing_rzn_social', true).'

'; echo '

'.__('Giro').':
'.get_post_meta($order->get_id(), '_billing_giro', true).'

'; }