মুলতুবি থাকা ব্যবহারকারীর নামটি কীভাবে সংরক্ষণ করতে পারি?


9

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

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

উত্তর:


13

ডিবি অ্যাক্সেস স্তর এবং সারিগুলি মোছা

ওয়ার্ডপ্রেস wpdbক্লাসটি ব্যবহার করে ডাটাবেস স্তরটিতে অ্যাক্সেস পরিচালনা করে global $wpdb। ক্লাসটি delete()টেবিলগুলি থেকে সারিগুলি মোছার জন্য একটি পদ্ধতি সরবরাহ করে:

$wpdb->delete( $table, $where, $where_format = null );

মাল্টিসাইট সারণী এবং অ্যাক্টিভেশন কীগুলি

ওয়ার্ডপ্রেসের কয়েকটি এমইউ নির্দিষ্ট টেবিল রয়েছে , যেখানে একটি {$wpdb->prefix}signups(আপনার wp-config.phpফাইলে উপসর্গ সেট করা আছে )। টেবিলের স্কিম এখানে । ব্যবহারকারীর অ্যাকাউন্ট সক্রিয়করণের জন্য দায়বদ্ধ হ'ল activation_key, যা মেইলে লিঙ্কটি ক্লিক করার পরে সেট হয়ে যায়। এর পরে, activatedকীটি একটি datetimeমান সহ সেট হয়ে যাবে । অ্যাকাউন্টটি সক্রিয় হওয়ার আগে, ডিফল্ট মানটি হবে 0000-00-00 00:00:00(যদি আপনাকে ডিফল্টের জন্য জিজ্ঞাসা করতে হবে)। এছাড়াও প্রক্রিয়াটিতে tinyint/ 1কলামটি থাকে active, যা 1কোনও ব্যবহারকারী সক্রিয় থাকলে সেট করে দেওয়া হয় ।

কোর নিজেই ব্যবহার করে wpmu_activate_signup()। কিছু উদাহরণের জন্য এটি দেখুন। এর মধ্যে একটি নিম্নরূপ যা এটি সক্রিয় করতে কোনও ব্যবহারকারী এন্ট্রি আপডেট করে - পাঠযোগ্যতার জন্য পুনরায় কাজ করা।

$wpdb->update(
    $wpdb->signups,
    array(
        'active'    => 1,
        'activated' => current_time( 'mysql', true ),
    ),
    array( 'activation_key' => $key, )
);

সক্রিয় নয় এমন অ্যাকাউন্টগুলির বিরুদ্ধে একটি ক্যোয়ারী তৈরি করা

কেবল WP কে কঠোর পরিশ্রম করতে দিন:

global $wpdb;
$wpdb->delete(
    $wpdb->signups,
    array( 'user_login' => 'some_login', )
);

আপনি যদি WP_List_Tableকোনও স্ট্রিং ব্যবহার করছেন তা নির্দেশ করার জন্য আপনি যদি অনুরোধগুলি সম্পাদনের জন্য (এন অ্যাডমিন) ফর্ম ব্যবহার করেন (উদাহরণস্বরূপ এ প্রসারিত ) আপনি তৃতীয় আর্গুমেন্ট (অ্যারে) ব্যবহার করতে পারেন । মনে রাখবেন যে আপনার এখনও $_POSTমান মান স্যানিটাইজ করা উচিত । ইঙ্গিত: আপনি user_emailপাশাপাশি ব্যবহার করতে পারেন ।

global $wpdb;
$wpdb->delete(
    $wpdb->signups,
    array( 'user_login' => 'some_login', ),
    array( '%s', )
);

9

আপনি যদি কোনও নির্দিষ্ট ব্যবহারকারীর জন্য ডাটাবেসে সাইনআপ মুছে ফেলার জন্য দ্রুত সমাধান চান তবে আপনার যা চান তা করা উচিত:

/**
 * Delete a row in the signups table for a given username.
 *
 * @param string $user_login Username.
 * @return bool Whether the signup row was successfully deleted.
 */
function delete_activation_key_by_user( $user_login ) {
    global $wpdb;

    $success = false;

    if ( false !== $wpdb->delete( $wpdb->signups, array( 'user_login' => sanitize_text_field( $user_login ) ) ) ) {
        $success = true;
    }
    return $success;
}

var_dump( delete_activation_key_by_user( 'the_username' ) );
// bool(true|false)

আপনি ইমেলগুলি কেন প্রেরণ করা হচ্ছে না তা নির্ধারণের সময় এই সমস্যাটি পরিচালনা করতে আপনি ওয়ার্ডপ্রেস.আর্গ রেপোতে একটি প্লাগইন ব্যবহার করতে পারেন 'ইউজার অ্যাক্টিভেশন কী'। এটি আপনাকে মাল্টিসাইটে ব্যবহারকারীদের জন্য অ্যাক্টিভেশন কীগুলি ম্যানুয়ালি মুছতে বা অনুমোদন করতে দেয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.