Hallo heute, ich arbeitete mit woo-Commerce und ich habe erfolgreich einige benutzerdefinierte Checkout-Felder nach Benutzeranforderungen erstellt, aber ich kann sie nicht in der Datenbank speichern.woocommerce_checkout_update_order_meta Aktion funktioniert nicht
hier, wie ich benutzerdefinierte Kasse Felder erstellt ... seine in der Kinder Thema functions.php
add_filter('woocommerce_checkout_fields' , 'custom_override_checkout_fields');
// Over Ridding, Removing, Creating New Fields.
function custom_override_checkout_fields($fields) {
unset($fields['billing']['billing_company']);
unset($fields['billing']['billing_address_2']);
unset($fields['order']['order_comments']);
unset($fields['billing']['billing_address_1']);
unset($fields['billing']['billing_city']);
unset($fields['billing']['billing_postcode']);
unset($fields['billing']['billing_email']);
$fields['billing']['your_name'] = array(
'type' => 'text',
'label' => __('Full Name', 'woocommerce'),
'placeholder' => _x('Full Name', 'placeholder', 'woocommerce'),
'required' => false,
'class' => array('form-row-wide'),
'clear' => true
);
$fields['billing']['your_phone_number'] = array(
'type' => 'text',
'label' => __('Your Phone Number', 'woocommerce'),
'placeholder' => _x('Your Phone Number', 'placeholder', 'woocommerce'),
'required' => false,
'class' => array('form-row-wide'),
'clear' => true
);
$fields['billing']['recipient_name'] = array(
'type' => 'text',
'label' => __("Recipient's Name", 'woocommerce'),
'placeholder' => _x("Recipient's Name", 'placeholder', 'woocommerce'),
'required' => false,
'class' => array('form-row-wide'),
'clear' => true
);
$fields['billing']['recipient_company_name'] = array(
'type' => 'text',
'label' => __("Recipient's Company (if any)", 'woocommerce'),
'placeholder' => _x("Recipient's Company (if any)", 'placeholder', 'woocommerce'),
'required' => false,
'class' => array('form-row-wide'),
'clear' => true
);
$fields['billing']['recipient_phone_number'] = array(
'type' => 'text',
'label' => __("Recipient's Phone Number", 'woocommerce'),
'placeholder' => _x("Recipient's Phone Number", 'placeholder', 'woocommerce'),
'required' => false,
'class' => array('form-row-wide'),
'clear' => true
);
$fields['billing']['recipient_address'] = array(
'type' => 'text',
'label' => __("Recipient's Address", 'woocommerce'),
'placeholder' => _x("Recipient's Address", 'placeholder', 'woocommerce'),
'required' => false,
'class' => array('form-row-wide'),
'clear' => true
);
return $fields;
}
In db, wo ich für die Felder suchen. seine wp_postmeta
Tabelle. Beigefügt ist Screenshot Ich suche mit Bestell-ID ..
Jetzt habe ich fügen Sie die checkout_update_order_meta
Aktion die Reihenfolge meta zu aktualisieren und speichern meine benutzerdefinierten angelegte Felder. Aber es scheint, dass es nicht funktioniert, weil, wenn ich einchecke wp_postmeta
Tabelle mit der neuesten erstellten Bestell-ID finde ich meine benutzerdefinierten Felder dort nicht.
Es ist mein erster Umgang mit Woocommerce-Code ich suchte viel und kam hierher, als ich aufgeben. Bitte hilf mir, dieses Geheimnis zu lösen.
Bitte korrigieren Sie mich, was ich falsch mache. Auch nach diesem Schritt muss ich diese benutzerdefinierten Felder im Wordpress-Dashboard unter woocommerce> orders> order details anzeigen, wenn es also einen nützlichen Link dafür gibt.
Vielen Dank im Voraus.
Es funktionierte wie ein Champion, so dass das einzige falsche Ding verschachtelte Funktion war. if (! empty ($ _ POST ['PROBLEM WENN ICH NICHT ALS NESTED-FUNKTION ARBEITET'])); DANKE A LOT MATE CODE ARBEITEN WIE EIN CHAMP AUCH SIE ÖFFNET MEINEN VERSTAND ZU MEHREREN ANDEREN DINGEN –
Sie können auch immer ** 'update_post_meta()' ** verwenden, da 'add_post_meta()' darin enthalten ist ... – LoicTheAztec
Ich werde mich darum kümmern die Dinge, die Sie erwähnt haben, aber es gibt ein anderes Problem, dass, wie ich die benutzerdefinierten Feldinformationen im Wordpress-Dashboard im Bestellmenü anzeigen werde? Können Sie helfen? –