WooCommerce Aggiungere set di campi personalizzati come campi di fatturazione
Sto lavorando su funzioni e-commerce dove ho bisogno di aggiungere un set di campi personalizzati come Campi del Profilo, simili a quelli di fatturazione
Di seguito i campi necessari nel mio form di checkout e registrazione
profile_first_name
profile_last_name
profile_company
profile_address_1
profile_address_2
profile_city
profile_postcode
profile_country
profile_state
profile_email
profile_phone
Potete guidarmi su come posso aggiungere tutti i campi sopra elencati nel mio tema WordPress e quali Azioni o Filtri dovrei utilizzare per visualizzarli nel form di checkout
Grazie in anticipo
Nikhil

Molto vecchio, ma questo articolo continua ad apparire nelle ricerche, quindi aggiungerò che il mio articolo Personalizzare i campi del checkout in WooCommerce qui è un esempio di aggiunta di un nuovo campo al checkout:
// Aggiungi un nuovo campo al checkout
function kia_filter_checkout_fields($fields){
$fields['extra_fields'] = array(
'some_field' => array(
'type' => 'text',
'required' => true,
'label' => __( 'Campo personalizzato' )
)
);
return $fields;
}
add_filter( 'woocommerce_checkout_fields', 'kia_filter_checkout_fields' );
// mostra il campo aggiuntivo nel modulo di checkout
function kia_extra_checkout_fields(){
$checkout = WC()->checkout(); ?>
<div class="extra-fields">
<h3><?php _e( 'Campi Aggiuntivi' ); ?></h3>
<?php foreach ( $checkout->checkout_fields['extra_fields'] as $key => $field ) : ?>
<?php woocommerce_form_field( $key, $field, $checkout->get_value( $key ) ); ?>
<?php endforeach; ?>
</div>
<?php }
add_action( 'woocommerce_checkout_after_customer_details' ,'kia_extra_checkout_fields' );
// salva il campo aggiuntivo quando il checkout viene processato
function kia_save_extra_checkout_fields( $order_id, $posted ){
if( isset( $posted['some_field'] ) ) {
update_post_meta( $order_id, '_some_field', sanitize_text_field( $posted['some_field'] ) );
}
}
add_action( 'woocommerce_checkout_update_order_meta', 'kia_save_extra_checkout_fields', 10, 2 );
// mostra i dati aggiuntivi nel pannello di amministrazione dell'ordine
function kia_display_order_data_in_admin( $order ){ ?>
<div class="order_data_column">
<h4><?php _e( 'Dettagli Aggiuntivi', 'woocommerce' ); ?></h4>
<?php
echo '<p><strong>' . __( 'Campo personalizzato' ) . ':</strong>' . get_post_meta( $order->id, '_some_field', true ) . '</p>'; ?>
</div>
<?php }
add_action( 'woocommerce_admin_order_data_after_order_details', 'kia_display_order_data_in_admin' );

La pagina "Personalizzazione dei campi del checkout utilizzando azioni e filtri" nel Codex di WooCommerce potrebbe esserti d'aiuto.

Ciao, ho esaminato quel link e ho provato a creare i campi, ma mi limita in qualche modo. Stavo pensando di sovrascrivere il file class-wc-checkout.php con un mio file personalizzato nel tema, dato che questo era possibile.
Dopo di che potrei creare i metodi get_default_address_fields e get_address_fields (che erano nel file class-wc-countries.php) e utilizzare queste funzioni nel modulo di Checkout. Purtroppo non posso sovrascrivere il file class-wc-countries.php nel mio tema, altrimenti tutto sarebbe stato più facile.
Fammi sapere cosa ne pensi di questo metodo Nikhil
