Comment afficher un champ personnalisé dans les commandes woocommerce dans le panneau d'administration?
-
-
Lepremierbloc de code de votre questionmodifie le champpar défaut «No detéléphone».Iln'ajoute aucunnouveau champ auformulaire de commande.Les champs depaiementne serontpas disponibles sous "Champspersonnalisés",veuillez doncne pas le rechercherici.Si vous souhaitezmodifier l'un des champs de l'adresse defacturation ou de l'adresse de livraison,accédez aubackendet cliquez surn'importe quelle commande sous la liste des commandes.Ensuite,vous verrez unepetite icône demodificationen plus desen-têtes "Détails defacturation"et "Détails de livraison".En cliquant dessus,vouspourrezmodifier ces détails.J'espère que ça aide.The first code block in your question, modifies the default 'Phone no' field. It does not add any new field to checkout form. The checkout fields won't be available under "custom fields", so please don't search it there. If you want to edit any of the field from billing address or shipping address, go to backend and click on any order under order list. Then you will see a small edit icon besides 'Billing Details' and 'Shipping Details' headings. Clicking on that will allow you to edit those details. I hope this helps.
- 0
- 2016-01-22
- Prasad Nevase
-
Veuillez vérifiermon codemaintenantPlease check my code now
- 0
- 2016-01-23
- Ron
-
2 réponses
- votes
-
- 2016-01-23
Le code que vous avezfourniestincomplet. Jene saispas si c'est le seul code que vous utilisezpour réaliser ce que vous voulez. Donc,en plus dupremierbloc de code que vous avezfourni,ci-dessous,j'ajoutetout le reste du code quiestnécessairepour afficher lenouveau champ sur lebackend dans la zone `` Détails de la commande ''et le rendremodifiable via des champspersonnalisés. Veuilleznoter que dans votre deuxièmebloc de code,vous aveznommé la clé de champ comme
_billing_new_phone
. Toutnom de clé de champpersonnalisé commençantpar _ (trait de soulignement)est un champpersonnalisémasqué & amp;n'apparaîtrapas sur lebackend sous "Champspersonnalisés"./** * Process the checkout */ add_action('woocommerce_checkout_process', 'my_custom_checkout_field_process'); function my_custom_checkout_field_process() { // Check if set, if its not set add an error. if ( ! $_POST['billing_phone_new'] ) wc_add_notice( __( 'Phone 2 is compulsory. Please enter a value' ), 'error' ); } /** * Update the order meta with field value */ add_action( 'woocommerce_checkout_update_order_meta', 'my_custom_checkout_field_update_order_meta' ); function my_custom_checkout_field_update_order_meta( $order_id ) { if ( ! empty( $_POST['billing_phone_new'] ) ) { update_post_meta( $order_id, 'billing_phone_new', sanitize_text_field( $_POST['billing_phone_new'] ) ); } } /** * Display field value on the order edit page */ add_action( 'woocommerce_admin_order_data_after_billing_address', 'my_custom_checkout_field_display_admin_order_meta', 10, 1 ); function my_custom_checkout_field_display_admin_order_meta($order){ echo '<p><strong>'.__('Phone 2').':</strong> <br/>' . get_post_meta( $order->get_id(), 'billing_phone_new', true ) . '</p>'; }
WooCommercene rendpas lenouveau champ depaiementmodifiable dans saboîte standard "Détails de la commande". Il sera disponibleen mode `` affichage uniquement '' dans cetteboîte,mais vouspouvez lemodifier via lebloc de champspersonnalisés standard de WordPress. Voir la capture d'écran ci-dessous.
The code you have provided is incomplete. Not sure if that is the only code you are using to achieve what you want. So, besides first code block which you have provided, bellow I am adding all rest of the code which is required to show the new field on backend in 'Order Details' box and make it editable through custom fields. Please note, in your second code block you have named the field key as
_billing_new_phone
. Any custom field key name which starts with _ (underscore) is a hidden custom field & won't show up on backend under "Custom Fields"./** * Process the checkout */ add_action('woocommerce_checkout_process', 'my_custom_checkout_field_process'); function my_custom_checkout_field_process() { // Check if set, if its not set add an error. if ( ! $_POST['billing_phone_new'] ) wc_add_notice( __( 'Phone 2 is compulsory. Please enter a value' ), 'error' ); } /** * Update the order meta with field value */ add_action( 'woocommerce_checkout_update_order_meta', 'my_custom_checkout_field_update_order_meta' ); function my_custom_checkout_field_update_order_meta( $order_id ) { if ( ! empty( $_POST['billing_phone_new'] ) ) { update_post_meta( $order_id, 'billing_phone_new', sanitize_text_field( $_POST['billing_phone_new'] ) ); } } /** * Display field value on the order edit page */ add_action( 'woocommerce_admin_order_data_after_billing_address', 'my_custom_checkout_field_display_admin_order_meta', 10, 1 ); function my_custom_checkout_field_display_admin_order_meta($order){ echo '<p><strong>'.__('Phone 2').':</strong> <br/>' . get_post_meta( $order->get_id(), 'billing_phone_new', true ) . '</p>'; }
WooCommerce does not make the new checkout field editable under its standard 'Order Details' box. It will be available as 'view only' mode in that box but you can edit the same through WordPress' standard custom fields block. See below screenshot.
-
"" Toutnom de clé de champpersonnalisé commençantpar _ (trait de soulignement)est un champpersonnalisémasquéet n'apparaîtrapas sur lebackend sous "Champspersonnalisés"."" d'où avez-vous obtenu cesinformations?""Any custom field key name which starts with _ (underscore) is a hidden custom field & won't show up on backend under "Custom Fields". "" from where you get this information ?
- 0
- 2016-01-24
- Ron
-
Sur le codex WordPress.Vouspouvez [obtenirplus d'informationsici] (https://codex.wordpress.org/Function_Reference/add_post_meta#Hidden_Custom_Fields)On WordPress codex. You may [get more info here](https://codex.wordpress.org/Function_Reference/add_post_meta#Hidden_Custom_Fields)
- 2
- 2016-01-25
- Prasad Nevase
-
Veuillez aider à résoudre la question demon ami https://stackoverflow.com/questions/49505056/woocommerce-create-new-discount-functionalityPlease helpt solve my friend question https://stackoverflow.com/questions/49505056/woocommerce-create-new-discount-functionality
- 0
- 2018-03-27
- Ron
-
dansmon cas,j'ai obtenu des résultatsen utilisantget_post_meta ($ order->get_id (),'_billing_phone_new',true).J'ai dûmettre untrait de soulignement devant lenom de la variable dans lafonctionget_post_meta.in my case,I got results by using get_post_meta( $order->get_id(), '_billing_phone_new', true ). I had to put underscore in front of variable name in get_post_meta function.
- 0
- 2019-05-19
- Dashrath
-
- 2017-12-13
Voici la solution: L'accès direct aux donnéesproduitn'estpas autorisé,parex.
$product->id
Laméthode correctepour l'avenirest:
$product->get_id()
Here is the solution : Accessing directly product data is not allowed, e.g.
$product->id
The correct method going forward is:
$product->get_id()
-
Comment cela répond-il à la question?How is this answering the question?
- 0
- 2020-05-21
- Tofandel
actuellement,j'ajoute un champ defacturationpersonnalisé dans woocommercepar
J'aibesoin demodifier la valeur de ce champ côté administrateur. Actuellement,je peuxmodifiertoutes les autres valeurs de l'adresse defacturation,mais cette valeurn'apparaîtpas dans la section d'administration. J'utilise le code suivant uniquementpour voir la valeur dans la section admin.
J'ai lu la documentation https://docs.woothemes.com/document/tutorial-customising-checkout-fields-using-actions-and-filters/. Maistout dans ce documentfonctionne correctement,attendez-vous àbilling_phone/Phone. Je coche l'option écranmaisj'ai déjà coché le champpersonnalisé. L'autre champpersonnaliséet sa valeur sont visibleset modifiables.
Commentpuis-jemodifier cette valeur dans leback-end. Veuillez aider.