معرفی هوک wpmu_validate_user_signup در وردپرس
وردپرس یک پلتفورم فوقالعاده است که به ما اجازه میدهد تا سایتهای مختلفی بسازیم و مدیریت کنیم. یکی از ویژگیهای جالب آن، سیستم هوکها (Hooks) است که به ما امکان میدهد کدهای دلخواه را در زمانهای مختلف در چرخهٔ عمر یک درخواست اجرا کنیم. به عبارت دیگر، هوکها به ما اجازه میدهند که بدون تغییر در هستهٔ وردپرس، قابلیتهای جدیدی به آن اضافه کنیم.
هوک wpmu_validate_user_signup یکی از هوکهای مهم در سیستم چند کاربرهٔ وردپرس (WordPress Multisite) است. این هوک به ما اجازه میدهد تا اعتبارسنجیهای لازم را برای نامنویسی کاربران جدید قبل از اینکه اطلاعات به پایگاه داده وارد شوند، انجام دهیم. بهاینترتیب، میتوانیم از ثبت کاربرانی که شرایط خاصی را ندارند، جلوگیری کنیم.
از این هوک میتوان در زمانهایی استفاده کرد که مثلاً بخواهید اطمینان حاصل کنید که نام کاربری کمتر از سه کاراکتر نباشد یا ایمیل کاربر معتبر باشد. این کار به ما این امکان را میدهد که بهترین تجربه را برای کاربران خود فراهم کنیم و از بروز مشکلات بعدی جلوگیری کنیم.
در این بخش، ما نحوهٔ استفاده از wpmu_validate_user_signup را بررسی خواهیم کرد و خواهیم دید که چگونه میتوانیم یک کد ساده بنویسیم که نام کاربری را اعتبارسنجی کند و در صورت لزوم پیام خطا نمایش دهد.
کد نمونه استفاده از هوک
function validate_user_signup( $username, $email, $errors ) {
if ( strlen( $username ) < 3 ) {
$errors->add( 'username_too_short', __( 'نام کاربری باید حداقل ۳ کاراکتر باشد.', 'textdomain' ) );
}
}
add_filter( 'wpmu_validate_user_signup', 'validate_user_signup', 10, 3 );
توضیحات خط به خط کد
function validate_user_signup( $username, $email, $errors ) {
این خط یک تابع به نام validate_user_signup تعریف میکند که سه آرگومان ورودی میگیرد؛ نام کاربری، ایمیل و یک شیء برای نگهداری خطاها.
if ( strlen( $username ) < 3 ) {
در این خط، بررسی میشود که آیا طول نام کاربری کمتر از ۳ کاراکتر است یا خیر.
$errors->add( 'username_too_short', __( 'نام کاربری باید حداقل ۳ کاراکتر باشد.', 'textdomain' ) );
اگر نام کاربری کمتر از ۳ کاراکتر باشد، یک خطا به شیء خطاها اضافه میشود.
}
این خط بسته شدن بلاک if را مشخص میکند.
}
در آخر، این خط بسته شدن تابع را تعیین میکند.
add_filter( 'wpmu_validate_user_signup', 'validate_user_signup', 10, 3 );
با این خط، تابع validate_user_signup به هوک wpmu_validate_user_signup متصل میشود.