Cum se adaugă un câmp personalizat de plată la e-mailul WooCommerce
Publicat: 2020-12-17Doriți să adăugați un câmp personalizat de plată la e-mail în magazinul dvs. WooCommerce?
WooCommerce este un plugin puternic de comerț electronic pentru WordPress, care este flexibil la personalizare.
În această postare, veți vedea cum puteți personaliza în mod dinamic câmpuri suplimentare, cum ar fi eliminarea adresei de facturare, adăugarea/editarea câmpurilor personalizate de plată și salvarea acestor câmpuri personalizate în baza de date. În plus, vă voi arăta cum puteți adăuga aceste câmpuri personalizate pentru a comanda e-mailuri.
Eliminați informații suplimentare din câmpurile personalizate de plată
Primul pas este să adăugați un fragment de cod PHP personalizat în fișierul function.php al temei pentru a elimina câmpurile de adresă din ecranul de facturare:
funcția woocommerce_remove_additional_information_checkout($fields){ unset( $fields["billing_first_name"] ); unset( $fields["nume_facturare"] ); returnează $câmpuri; } add_filter( 'woocommerce_billing_fields', 'woocommerce_remove_additional_information_checkout');
Acesta este rezultatul:
Următoarele fragmente de cod vor adăuga un câmp personalizat la pagina de finalizare a comenzii, vor salva datele în meta-comandă și vor afișa meta-comandă în administratorul comenzilor. Am primit mai multe întrebări despre procesul de adăugare a mai multor câmpuri. Pentru a ajuta la rezolvarea problemei, vom adăuga un fragment de cod pentru a adăuga două câmpuri.
Adăugați un câmp personalizat de plată la e-mailul WooCommerce
Fragmentele de cod ar trebui adăugate în fișierul functions.php al temei. Vă recomand să utilizați o temă copil, astfel încât modificările dvs. să nu se piardă în timpul unui upgrade.
1. Adăugați câmp personalizat de plată WooCommerce
Adăugați următorul cod în fișierul functions.php pentru a adăuga un câmp personalizat de plată WooCommerce:
funcția njengah_custom_checkout_fields($fields){ $fields['njengah_extra_fields'] = matrice( 'njengah_text_field' => matrice( 'type' => 'text', „necesar” => adevărat, 'label' => __( 'Câmp text de introducere' ) ), 'njengah_dropdown' => matrice( 'type' => 'selectați', 'options' => array( 'first' => __( 'Prima opţiune' ), 'second' => __( 'A doua opţiune' ), 'third' => __( 'A treia opţiune' ) ), „necesar” => adevărat, 'label' => __( 'Câmp derulant' ) ) ); returnează $câmpuri; } add_filter('woocommerce_checkout_fields', 'njengah_custom_checkout_fields'); funcția njengah_extra_checkout_fields(){ $checkout = WC()->checkout(); ?> <div class="extra-fields"> <h3><?php _e('Câmpuri suplimentare'); ?></h3> <?php foreach ( $checkout->checkout_fields['njengah_extra_fields'] ca $key => $field ) : ?> <?php woocommerce_form_field( $key, $field, $checkout->get_value( $key ) ); ?> <?php endforeach; ?> </div> <?php } add_action( 'woocommerce_checkout_after_customer_details' ,'njengah_extra_checkout_fields' );
Acesta este rezultatul:
2. Salvați datele câmpurilor personalizate de checkout WooCommerce
Adăugați următorul cod în fișierul functions.php pentru a salva datele câmpurilor personalizate de checkout WooCommerce.
funcția njengah_save_extra_checkout_fields( $comanda_id, $postat ){ // nu uitați igienizarea corespunzătoare dacă utilizați un alt tip de câmp if( isset( $posted['njengah_text_field'] ) ) { update_post_meta( $comanda_id, '_njengah_text_field', sanitize_text_field( $posted['njengah_text_field'] ) ); } if( isset( $posted['njengah_dropdown'] ) && in_array( $posted['njengah_dropdown'], array( 'primul', 'al doilea', 'al treilea' ) ) ) { update_post_meta( $order_id, '_njengah_dropdown', $posted['njengah_dropdown'] ); } } add_action( 'woocommerce_checkout_update_order_meta', 'njengah_save_extra_checkout_fields', 10, 2 );
3. Afișează utilizatorului datele câmpurilor personalizate WooCommerce
Adăugați următorul cod în fișierul functions.php pentru a afișa utilizatorului datele câmpurilor personalizate WooCommerce.
funcția njengah_display_order_data( $order_id ){ ?> <h2><?php _e('Informații suplimentare'); ?></h2> <table class="shop_table shop_table_responsive additional_info"> <tbody> <tr> <th><?php _e( 'Câmp text de introducere:' ); ?></th> <td><?php echo get_post_meta( $order_id, '_njengah_text_field', true ); ?></td> </tr> <tr> <th><?php _e( 'Câmp drop-down:' ); ?></th> <td><?php echo get_post_meta( $order_id, '_njengah_dropdown', true ); ?></td> </tr> </tbody> </tabel> <?php } add_action( 'woocommerce_thankyou', 'njengah_display_order_data', 20 ); add_action( 'woocommerce_view_order', 'njengah_display_order_data', 20 );
Acesta este rezultatul:
4. Afișați câmpurile de comandă personalizate pentru administratorul WooCommerce
Acest fragment de cod va funcționa ca date privind adresa de expediere și de facturare și va dezvălui intrările atunci când utilizatorul face clic pe pictograma creion.
funcția njengah_display_order_data_in_admin( $order ){ ?> <div class="order_data_column"> <h4><?php _e( „Informații suplimentare”, „woocommerce”); ?><a href="#" class="edit_address"><?php _e( 'Edit', 'woocommerce' ); ?></a></h4> <div class="adresa"> <?php ecou „<p><strong>” . __( „Câmp de text”) . ':</strong>' . get_post_meta( $order->id, '_njengah_text_field', true ) . „</p>”; ecou „<p><strong>” . __( 'Scapă jos' ) . ':</strong>' . get_post_meta( $order->id, '_njengah_dropdown', true ) . „</p>”; ?> </div> <div class="edit_address"> <?php woocommerce_wp_text_input( array( 'id' => '_njengah_text_field', 'label' => __( 'Unele câmpuri' ), 'wrapper_class' => '_billing_company_field' ) ); ?> <?php woocommerce_wp_text_input( array( 'id' => '_njengah_dropdown', 'label' => __( 'Another field' ), 'wrapper_class' => '_billing_company_field' ) ); ?> </div> </div> <?php } add_action( 'woocommerce_admin_order_data_after_order_details', 'njengah_display_order_data_in_admin'); funcția njengah_save_extra_details( $post_id, $post ){ update_post_meta( $post_id, '_njengah_text_field', wc_clean( $_POST[ '_njengah_text_field' ] ) ); update_post_meta( $post_id, '_njengah_dropdown', wc_clean( $_POST[ '_njengah_dropdown' ] ) ); } add_action( 'woocommerce_process_shop_order_meta', 'njengah_save_extra_details', 45, 2 );
Acesta este rezultatul:
5. Adăugați câmpuri personalizate WooCommerce la e-mailurile de comandă
Adăugați următorul cod în fișierul functions.php pentru a adăuga câmpuri personalizate WooCommerce pentru a comanda e-mailuri. Dacă doriți să personalizați rezultatul în e-mailuri, puteți adăuga ceva text la oricare dintre cârligele disponibile în șabloanele de e-mail.
funcția njengah_email_order_meta_fields( $fields, $sent_to_admin, $order ) { $fields['instagram'] = array( 'label' => __( 'Un câmp'), 'value' => get_post_meta( $order->id, '_njengah_text_field', true ), ); $fields['licence'] = array( 'label' => __( 'Un alt câmp' ), 'value' => get_post_meta( $order->id, '_njengah_dropdown', true ), ); returnează $câmpuri; } add_filter('woocommerce_email_order_meta_fields', 'njengah_email_order_meta_fields', 10, 3 ); funcția njengah_show_email_order_meta( $comanda, $sent_to_admin, $plain_text ) { $njengah_text_field = get_post_meta( $order->id, '_njengah_text_field', true ); $njengah_dropdown = get_post_meta( $order->id, '_njengah_dropdown', true ); if( $text_plat){ echo „Valoarea unui câmp este „. $njengah_text_field . ' în timp ce valoarea unui alt câmp este ' . $njengah_dropdown; } altfel { echo „<p>Valoarea pentru <strong>câmpul text de introducere</strong> este „ . $njengah_text_field. „ în timp ce valoarea <strong>drop down</strong> este „ . $njengah_dropdown . „</p>”; } } add_action('woocommerce_email_customer_details', 'njengah_show_email_order_meta', 30, 3 );
Concluzie
În rezumat, am ilustrat cum puteți adăuga, edita și salva câmpuri personalizate în pagina de finalizare a plății WooCommerce. În plus, am editat șabloanele de e-mail pentru a adăuga informații din câmpurile personalizate ale e-mailurilor. Dacă trebuie să personalizați în continuare pagina de finalizare a comenzii, puteți utiliza un plugin de personalizare a comenzii.
Articole similare
- Cum să adăugați un câmp text personalizat Woocommerce pe pagina produsului
- Cum să creați o zonă de widget personalizată în WordPress pas cu pas
- Cum să mutați meniul principal Vitrina WooCommerce
- Cum să ascundeți tarifele de livrare dacă livrarea gratuită este disponibilă WooCommerce
- Cum să ascundeți cantitatea în stoc în WooCommerce
- Cum să ascundeți SKU, Categorie, Etichete Meta Pagina produsului WooCommerce
- Cum să ascundeți butonul Actualizare coș Pagina de coș WooCommerce
- Cum să ascundeți titlul Descrierea produsului WooCommerce
- Cum să ascund orice filă Pagina contului meu WooCommerce
- Cum să schimbați mesajele de eroare pentru WooCommerce Checkout