کد جلوگیری از غیرفعال شدن افزونه خاص در وردپرس

مسیح دیندار
مدیریت
عضو شده: 2021-04-12 14:23:35
2021-04-25 17:50:39

در گروه های کاربری با دسترسی افزونه ها، این امکان وجود داره که اونا بتونن افزونه های فعال سایت رو غیرفعال کنند! و خب افزونه های فعال هم که همینطوری الکی فعال نیستن! بالاخره وظیفه خاصی رو انجام میدن که در صورت غیرفعال شدن ممکنه سایت حتی از دسترس هم خارج بشه.

خب اگه به مدیران دیگه سایت اونقدری اطمینان ندارید می تونید از این کد استفاده کنید! :)) این هم اضافه کنم که این کد حتی امکان غیرفعال کردن افزونه معرفی شده توسط خودتون رو هم جلوگیری می کنه! در واقع این کد باعث میشه که یک افزونه هیچ وقت از طریق پیشخوان غیرفعال نشه.

اگه برای مشتری سایت طراحی کردید و می خواهید یک یا چند افزونه خاص رو همیشه براش فعال نگهدارید و غیرفعالش نکنه، کد زیر رو داخل فایل functions.php قالبتون قرار بدید:

add_filter( 'plugin_action_links', 'talkina_disable_plugin_deactivation', 10, 4 );
function talkina_disable_plugin_deactivation( $actions, $plugin_file, $plugin_data, $context ) {

if ( array_key_exists( 'deactivate', $actions ) && in_array( $plugin_file, array(
// مثل زیر اول نام پوشه افزونه و بعد نام فایل اصلی افزونه که معمولا با پوشه افزونه اسم مشابه دارن
'woocommerce/woocommerce.php'
)))
unset( $actions['deactivate'] );
return $actions;
}

توی کد بالا من ووکامرس رو مثال زدم. به این صورت که در قسمت اول باید نام پوشه افزونه که توی پوشه wp-plugins هست رو وارد کنید و بعد از اون نام فایل اصلی اون افزونه. اکثر افزونه ها نام فایل اصلیشون با اسم پوشه افزونه یکی هست پس راحت میشه پیداش کرد.