Δημιουργήστε τα δικά σας πεδία επαφής χρήστη WordPress

Σήμερα δημιούργησα ένα νέο πρόσθετο για εσάς. Ένα πρόσθετο που ασχολείται με τις μεθόδους επικοινωνίας των χρηστών. Βασικά, όταν επεξεργάζεστε έναν χρήστη στη διαχείριση, υπάρχει ένα μπλοκ “στοιχεία επικοινωνίας”. Λοιπόν, θα ήθελα να σας δείξω πώς να προσθέσετε τα δικά σας πεδία εκεί και να προχωρήσουμε λίγο πιο μακριά, πώς να δείξω (ή όχι) αυτά τα νέα πεδία στη σελίδα εγγραφής.


Ακολουθεί μια προεπισκόπηση του τι πρόκειται να δημιουργήσουμε:

επεξεργασία-προσαρμοσμένα πεδία

Νέα πεδία χρήστη στη σελίδα επεξεργασίας

προσαρμοσμένα πεδία

Προσαρμοσμένα πεδία στη σελίδα εγγραφής

Και για να το κάνουμε, όπως συνήθως, θα δημιουργήσουμε ένα ωραίο και απλό πρόσθετο!

Βήμα 1: Δημιουργία της προσθήκης

Δημιουργήστε έναν νέο φάκελο στο wp-content / plugins και καλέστε τον ως “μεθόδους προσαρμοσμένου χρήστη-επαφής”. Μέσα σε αυτόν τον πρόσφατα δημιουργημένο φάκελο, δημιουργήστε ένα αρχείο με το όνομα “rc-custom-user-contact-metod.php” και ανοίξτε το στο αγαπημένο σας πρόγραμμα επεξεργασίας.

Τοποθετήστε αυτό το περιεχόμενο στο κενό αρχείο σας. Αυτός ο κωδικός καταγράφει απλώς την προσθήκη:

Βήμα 2: Ορίστε τα προσαρμοσμένα πεδία σας

Στη συνέχεια, πρέπει να δημιουργήσουμε μια μεταβλητή που θα περιέχει τα προσαρμοσμένα πεδία μας, αυτά που θα χρησιμοποιηθούν στη σελίδα έκδοσης χρήστη και επίσης στην προεπιλεγμένη σελίδα εγγραφής. Ας αποθηκεύσουμε αυτά τα πεδία σε μια μεταβλητή που ονομάζεται $ extra_fields.

$ extra_fields = πίνακας (
πίνακας ('facebook', __ ('Όνομα χρήστη Facebook', 'rc_cucm'), true),
πίνακας («twitter», __ («Όνομα χρήστη Twitter», «rc_cucm»), true),
πίνακας ('googleplus', __ ('Google+ ID', 'rc_cucm'), true),
πίνακας ('Linkedin', __ ('Linked In ID', 'rc_cucm'), false),
πίνακας («pinterest», __ («Όνομα χρήστη Pinterest», «rc_cucm»), false),
array ('wordpress', __ ('WordPress.org Όνομα χρήστη', 'rc_cucm'), false),
πίνακας ('τηλέφωνο', __ ('Αριθμός τηλεφώνου', 'rc_cucm'), true)
)

Αποθηκεύουμε κάθε πεδίο σε έναν πίνακα που έχει 3 παραμέτρους, το πρώτο είναι το αναγνωριστικό πεδίου, το δεύτερο είναι η ετικέτα πεδίου και το τελευταίο είναι μια δυαδική πληροφορία που καθορίζει εάν το πεδίο εμφανίζεται στη σελίδα εγγραφής ή όχι . Μπορείτε να προσθέσετε όσες παραμέτρους θέλετε, για παράδειγμα ένα σύμβολο κράτησης θέσης ή απαιτούμενες πληροφορίες.

Βήμα 3: Αγκιστρώστε το σωστό φίλτρο

Τώρα πρέπει να συνδέσουμε μια λειτουργία στο σωστό φίλτρο. Στη συγκεκριμένη περίπτωση, το φίλτρο είναι "user_contactmethods" και το όνομα της συνάρτησης που πρόκειται να δημιουργήσουμε είναι "rc_add_user_contactmethods".

// Χρησιμοποιήστε τις μεθόδους user_contactmodes για να προσθέσετε νέα πεδία
add_filter ('user_contactmethods', 'rc_add_user_contactmethods');

Βήμα 4: Δημιουργήστε τα προσαρμοσμένα πεδία μας

Τώρα πρέπει να δημιουργήσουμε τη συνάρτηση "rc_add_user_contactmethods". Είναι αυτό που θα προσθέσει τα προσαρμοσμένα πεδία μας στη σελίδα επεξεργασίας χρηστών. Τα καλά νέα, είναι ότι αποθηκεύσαμε τα πεδία μας σε έναν πίνακα, αυτό σημαίνει ότι η ακόλουθη λειτουργία θα είναι πλήρως δυναμική και θα είναι πολύ εύκολο να προσθέσετε νέα πεδία απλώς τροποποιώντας τη μεταβλητή $ extra_fields.

/ **
* Προσθέστε προσαρμοσμένους χρήστες προσαρμοσμένες μεθόδους επικοινωνίας
*
* @ πρόσβαση στο κοινό
* @since 1.0
* @ return void
* /
συνάρτηση rc_add_user_contactmethods ($ user_contactmethods) {

// Λήψη πεδίων
παγκόσμια $ extra_fields;

// Εμφάνιση κάθε πεδίου
foreach ($ extra_fields ως $ field) {
εάν (! isset ($ contactmethods [$ field [0]]))
$ user_contactmethods [$ field [0]] = $ field [1];
}

// Επιστρέφει τις μεθόδους επικοινωνίας
επιστροφή $ user_contactmethods;
}

Σε αυτό το βήμα, εάν αποθηκεύσετε και ενεργοποιήσετε την προσθήκη, θα πρέπει να δείτε τα προσαρμοσμένα πεδία σας στη σελίδα επεξεργασίας χρήστη. Καθώς χρησιμοποιούμε το σωστό άγκιστρο, δεν χρειάζεται να δημιουργήσουμε δεδομένα πεδίων "αποθήκευσης". Λοιπόν, το πρόσθετο λειτουργεί εξαιρετικά προς το παρόν. Αλλά θα ήθελα να προχωρήσω λίγο περισσότερο και να προσθέσω την επιλογή εμφάνισης αυτών των πεδίων στη σελίδα εγγραφής. Βεβαιωθείτε ότι ελέγχετε κάτω από τις ρυθμίσεις το πλαίσιο ελέγχου "Όλοι μπορούν να εγγραφούν", διαφορετικά δεν θα μπορείτε να δείτε το σύνδεσμο "Εγγραφή".

Βήμα 5: Γάντζοι σελίδας εγγραφής

Για να προσθέσουμε τα πεδία μας στη σελίδα εγγραφής, πρέπει να έχουμε πρόσβαση σε τουλάχιστον δύο γάντζους και να δημιουργήσουμε δύο λειτουργίες. Ένα για να εμφανίσετε τα πεδία και το δεύτερο για να αποθηκεύσετε τα δεδομένα πεδίων στη βάση δεδομένων.

Ας συνδέσουμε τις λειτουργίες μας:

// Προσθέστε τα πεδία μας στη διαδικασία εγγραφής
add_action ('register_form', 'rc_register_form_display_extra_fields');
add_action ('user_register', 'rc_user_register_save_extra_fields', 100);

Βήμα 6: Εμφάνιση σελίδας εγγραφής προσαρμοσμένων πεδίων

Στον παραπάνω κώδικα δηλώσαμε δύο συναρτήσεις. Το πρώτο είναι να εμφανιστούν τα πεδία στη σελίδα εγγραφής. Σε αυτό το μέρος πρέπει να φροντίσουμε την τρίτη παράμετρο κάθε πίνακα στα $ extra_fields. Αυτή η δυαδική παράμετρος λέει εάν τα πεδία πρέπει να εμφανίζονται ή όχι. True: το πεδίο εμφανίζεται, false: το πεδίο δεν εμφανίζεται.

/ **
* Εμφάνιση προσαρμοσμένων πεδίων στη σελίδα εγγραφής
*
* Εμφάνιση προσαρμοσμένων πεδίων κατά την εγγραφή εάν η τρίτη παράμετρος του πεδίου έχει οριστεί σε true
*
* @ πρόσβαση στο κοινό
* @since 1.0
* @ return void
* /
συνάρτηση rc_register_form_display_extra_fields () {

// Λήψη πεδίων
παγκόσμια $ extra_fields;

// Εμφάνιση κάθε πεδίου εάν η 3η παράμετρος έχει οριστεί σε "true"
foreach ($ extra_fields ως $ field) {
if (πεδίο $ [2] == true) {
$ field_value = isset ($ _POST [$ field [0]]); $ _POST [$ πεδίο [0]]: '';
ηχώ '

"; } // τέλος εαν } // τέλος foreach }

Βήμα 7: Αποθήκευση τιμών πεδίων κατά τη διαδικασία εγγραφής

Τώρα που τα πεδία μας εμφανίζονται στη σελίδα εγγραφής, χρειαζόμαστε, για να αποθηκεύσουμε τις τιμές τους στη βάση δεδομένων. Αυτό είναι το aime της συνάρτησης "rc_user_register_save_extra_fields". Για να το κάνουμε αυτό, πρέπει να χρησιμοποιήσουμε το "wp_update_user ()" λειτουργία.

/ **
* Αποθήκευση τιμών πεδίου
*
* @ πρόσβαση στο κοινό
* @since 1.0
* @ return void
* /
συνάρτηση rc_user_register_save_extra_fields ($ user_id, $ password = ", $ meta = array ()) {

// Λήψη πεδίων
παγκόσμια $ extra_fields;

$ userdata = array ();
$ userdata ['ID'] = $ user_id;

// Αποθηκεύστε κάθε πεδίο
foreach ($ extra_fields ως $ field) {
if (πεδίο $ [2] == true) {
$ userdata [$ field [0]] = $ _POST [$ field [0]];
} // τέλος εαν
} // τέλος foreach

$ new_user_id = wp_update_user ($ userdata);
}

συμπέρασμα

Λοιπόν, είδαμε τα βασικά για τον τρόπο προσθήκης νέων πεδίων στις μεθόδους επαφής χρήστη, αλλά αυτό είναι όλο. Μπορείτε, για παράδειγμα, να καταργήσετε υπάρχοντα πεδία, όπως "Yahoo IM", "AIM" και "Jabber" κάνοντας ένα απλό unset (). Αλλά μπορείτε επίσης να προσθέσετε κάποιες λειτουργίες για να απολυμάνετε τα προσαρμοσμένα πεδία σας, για να ελέγξετε για παράδειγμα εάν ο αριθμός τηλεφώνου έχει την κατάλληλη μορφή, εάν απαιτείται πεδίο ή όχι κλπ κ.λπ.… Μην διστάσετε να ζητήσετε συγκεκριμένες λειτουργίες στα σχόλια!

Ω, και ένα τελευταίο πράγμα ... αν θέλετε να εμφανίσετε τα δεδομένα οποιουδήποτε πεδίου σας, απλώς χρησιμοποιήστε το:

// Η παράμετρος 1 είναι αναγνωριστικό χρήστη
// Η παράμετρος 2 είναι αναγνωριστικό πεδίου
// Το Param 3 είναι εκεί για να πάρετε ένα var ή έναν πίνακα
echo get_user_meta (1, "twitter", true);  
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me

    Like this post? Please share to your friends:
    Adblock
    detector
    map