So machen Sie die Telefonnummer für die Kundenabrechnung in WordPress eindeutig
Lesezeit: 4 Minuten
Eigentlich möchte ich, dass Kunden der Rechnungsadresse von Woo-Commerce eindeutige Telefonnummern hinzufügen. Wenn jemand versucht, bereits vorhandene Telefonnummern hinzuzufügen / zu aktualisieren, sollte ein Fehler ausgegeben werden.
Ich habe den folgenden Code ausprobiert, aber er funktioniert nicht. Kann mir jemand die richtige Lösung für eindeutige Telefonnummern in der Woocommerce-Rechnungsadresse geben?
add_filter( 'update_user_meta', 'ts_unique_wc_phone_field');
function ts_unique_wc_phone_field( $errors ) {
if ( isset( $_POST['billing_phone'] ) ) {
$hasPhoneNumber= get_users('meta_value=".$_POST["billing_phone']);
if ( !empty($hasPhoneNumber)) {
$errors->add( 'billing_phone_error', __( '<strong>Error</strong>: Mobile number is already used!.', 'woocommerce' ) );
}
}
return $errors;
}
Vorsichtig: Sie haben Ihre Meta nicht erwähnt Schlüssel in deinem Beitrag. Dies kann etwas anderes als “billing_phone” sein. Passen Sie es nach Bedarf an.
Dies ermöglicht es Benutzern jedoch, Spielereien wie das Hinzufügen eines Leerzeichens/-/+ oder ähnliches zur Telefonnummer zu machen und sie wiederzuverwenden. Dies erfordert möglicherweise eine Funktion, um redundante Zeichen beim Einfügen von Metawerten herauszufiltern und dieselbe Funktion darauf anzuwenden $_POST['billing_phone'] vor der Metaabfrage für get_users.
Nein, es funktioniert nicht. Schwerwiegender Fehler: Nicht erfasster Fehler: Aufruf einer Member-Funktion add() für Zeichenfolge in….
– NAGENDRA
29. Januar 2020 um 4:41 Uhr
Aliqua
Ich habe auf einer meiner Seiten denselben Code innerhalb von zwei (2) Funktionen eingerichtet – eine für woocommerce -> mein Konto und eine an der Kasse, die die Gültigkeit der für mein Land angegebenen Telefonnummer prüft, und die andere zur Überprüfung wenn die Telefonnummer bereits existiert.
Da ich alle Telefonnummern als 0412345678 (ohne Leerzeichen) speichern möchte und einige Leute Telefonnummern als 0412 345 678 eingeben, entfernt str_replace() dies vor dem Speichern.
Obwohl ich diesen nächsten Teil noch nicht getestet habe, wird auf dieses Beispiel verwiesen dieser Linkwenn Sie den Admin-Benutzerbereich aktualisieren möchten, können Sie so etwas verwenden.
Unten ist ein Screenshot der Ergebnisse des Versuchs, meine Telefonnummer in eine bereits vorhandene zu ändern, während ich mich im Bereich WooCommerce->Mein Konto befinde.
Schwerwiegender Fehler: Uncaught ArgumentCountError: Zu wenige Argumente für die Funktion add_action(), 1 übergeben (zweite Funktion). Und die erste Funktion funktioniert auch nicht, sie aktualisiert einfach bereits vorhandene Telefonnummern.
– NAGENDRA
29. Januar 2020 um 6:39 Uhr
Ich verwende eine Klasse und musste vor der Bereitstellung Änderungen an der add_action vornehmen. Bitte finden Sie die folgenden Änderungen an der Antwort: add_action('woocommerce_checkout_process', 'wc_checkout_validate_billing_phone'); (Ich habe vergessen, die entsprechenden –> ‘ <-- um die Funktionen herum anzugeben).
– Aliqua
29. Januar 2020 um 7:02 Uhr
Meine Antwort wurde mit dem Admin-Benutzerbereich aktualisiert, wenn Sie dies erreichen möchten.
– Aliqua
29. Januar 2020 um 7:08 Uhr
Nein, es funktioniert nicht. entweder zeigt es auch keinen Fehler an. Bereits vorhandene Telefonnummern werden auch im Admin-Bereich und im Checkout-Formular aktualisiert.
– NAGENDRA
29. Januar 2020 um 7:18 Uhr
Hoffentlich kann das dann jemand ergänzen, da es bei mir funktioniert. Entschuldigung @Nagendra.
– Aliqua
29. Januar 2020 um 8:02 Uhr
10103200cookie-checkSo machen Sie die Telefonnummer für die Kundenabrechnung in WordPress eindeutigyes