ব্যবহারকারীদের প্রোফাইলে আমি কীভাবে একটি ক্ষেত্র যুক্ত করব? উদাহরণস্বরূপ, দেশ, বয়স ইত্যাদি


21

আমি কম্পিউটার / কোড ইত্যাদির সাথে খুব ভাল নই I আমি একটি প্লাগইন ব্যবহার করি যা একটি নিবন্ধকরণ ফর্ম জিনিসপত্র করে তোলে এবং সেই ফর্মটিতে আমি দেশ, বয়স গ্রুপ, লিঙ্গ এবং আরও কিছু যুক্ত করেছিলাম। আমি সেই বিকল্পটি ক্লিক করি যা ওয়ার্ডপ্রেস ব্যবহারকারীর জিনিসটিতে রেজিস্ট্রার যুক্ত করবে। তবে আমি যখন এটি চেষ্টা করি তখন কেবল ব্যবহারকারীর নাম এবং ইমেল ব্যাকএন্ডে ব্যবহারকারী বিভাগে প্রদর্শিত হয় .. অন্যান্য ক্ষেত্রগুলির জন্য কি ব্যবহারকারী বিভাগে দেখানোর কোনও উপায় আছে?

পরিসংখ্যানগত ব্যবহারের জন্য তাদের দেখানোর দরকার আমার।


5
আমাদের অনুসন্ধান চেষ্টা করুন। আপনি কয়েক ডজন উদাহরণ পাবেন।
ফুসিয়া

উত্তর:


58

আপনি ব্যবহার করতে হবে show_user_profile, edit_user_profile, personal_options_update, এবং edit_user_profile_updateআঙ্গুলসমূহ।

ব্যবহারকারী বিভাগে অতিরিক্ত ক্ষেত্র যুক্ত করার জন্য আপনি নিম্নলিখিত কোডটি ব্যবহার করতে পারেন

ব্যবহারকারীর সম্পাদনা বিভাগে অতিরিক্ত ক্ষেত্র যুক্ত করার কোড:

add_action( 'show_user_profile', 'extra_user_profile_fields' );
add_action( 'edit_user_profile', 'extra_user_profile_fields' );

function extra_user_profile_fields( $user ) { ?>
    <h3><?php _e("Extra profile information", "blank"); ?></h3>

    <table class="form-table">
    <tr>
        <th><label for="address"><?php _e("Address"); ?></label></th>
        <td>
            <input type="text" name="address" id="address" value="<?php echo esc_attr( get_the_author_meta( 'address', $user->ID ) ); ?>" class="regular-text" /><br />
            <span class="description"><?php _e("Please enter your address."); ?></span>
        </td>
    </tr>
    <tr>
        <th><label for="city"><?php _e("City"); ?></label></th>
        <td>
            <input type="text" name="city" id="city" value="<?php echo esc_attr( get_the_author_meta( 'city', $user->ID ) ); ?>" class="regular-text" /><br />
            <span class="description"><?php _e("Please enter your city."); ?></span>
        </td>
    </tr>
    <tr>
    <th><label for="postalcode"><?php _e("Postal Code"); ?></label></th>
        <td>
            <input type="text" name="postalcode" id="postalcode" value="<?php echo esc_attr( get_the_author_meta( 'postalcode', $user->ID ) ); ?>" class="regular-text" /><br />
            <span class="description"><?php _e("Please enter your postal code."); ?></span>
        </td>
    </tr>
    </table>
<?php }

ডাটাবেসে অতিরিক্ত ক্ষেত্রের বিশদ সংরক্ষণের কোড :

add_action( 'personal_options_update', 'save_extra_user_profile_fields' );
add_action( 'edit_user_profile_update', 'save_extra_user_profile_fields' );

function save_extra_user_profile_fields( $user_id ) {
    if ( !current_user_can( 'edit_user', $user_id ) ) { 
        return false; 
    }
    update_user_meta( $user_id, 'address', $_POST['address'] );
    update_user_meta( $user_id, 'city', $_POST['city'] );
    update_user_meta( $user_id, 'postalcode', $_POST['postalcode'] );
}

এই বিষয়টিতে বেশ কয়েকটি ব্লগ পোস্ট রয়েছে যা সহায়ক হতে পারে:


ব্রাভো এটি দুর্দান্ত কাজ করে।
এভিএব্রাহিমি

1
এটি আমার অতিরিক্ত ক্ষেত্রগুলি থেকে ডিবিতে ডেটা সংরক্ষণ করছে না। পরামর্শ দয়া করে? ধন্যবাদ.
বি_ডাব্ব

@ বি_ডাব্ব, আপনি কি নিজের কোডটি শেয়ার করতে পারেন? সুতরাং আমি চেক করব এবং আপনাকে জানাব।
অর্পিতা হুঙ্কা

আমি আমার সমস্যাটি সমাধান করেছি তবে পৌঁছানোর জন্য ধন্যবাদ।
বি_ডাববি

3

আপনি আরও ভাল ব্যবহার করতে চান get_user_meta(পরিবর্তে get_the_author_meta):

function extra_user_profile_fields( $user ) {
    $meta = get_user_meta($user->ID, 'meta_key_name', false);
}

3

উন্নত কাস্টম ক্ষেত্র প্রো প্লাগইন যদি আপনি কোন কোডিং ছাড়া ইউজার প্রোফাইল ক্ষেত্র যোগ করার জন্য অনুমতি দেবে।


3
কেবলমাত্র প্রো সংস্করণ
আমি 12:

পিএইচপি দিয়ে এটি করার নিখরচায় উপায় রয়েছে।
জোহান প্রিটোরিয়াস

হ্যাঁ - যদি আপনি পছন্দ করেন তবে এসিএফ ছাড়াই পিএইচপিতে এটি কোড করা অবশ্যই সম্ভব। আমার অভিজ্ঞতা হ'ল এতে 100+ লাইন কোড লাগবে এবং আপনাকে নোকেস যাচাইকরণের বিষয়ে, ফর্মের এইচটিএমএল লেখার বিষয়ে চিন্তা করতে হবে, এসিএফ-তে সেটআপের 5-10 মিনিট বনাম কয়েক ঘন্টা কোডিং হতে পারে। সম্ভবত আপনি যদি কোনও প্রকল্পে এসিএফ প্রো ব্যবহার করে থাকেন তবে তার উপর নির্ভর করে।
স্কয়ারকাণ্ডি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.