جلوگیری از آپدیت افزونه های وردپرسReviewed by SMZ on Mar 21Rating: 3.5جلوگیری از آپدیت افزونه های وردپرساگر از خوره های وردپرسی باشید بدون شک تا حالا بارها برایتان پیش آمده که پس از نصب یک افزونه، حسابی کد آن را دستکاری کنید، در نمای آن تغییر ایجاد کنید و خلاصه کاری کنید که با روز اولش حسابی متفاوت شود. خوب این کار خیلی خوب است. در واقع اینکه شما این توانایی را دارید که یک افزونه را برای استفاده ی خود، کاملا سفارشی کنید واقعا عالی است. حالا بیایید فرض کنیم این کار را برای یک مشتری انجام داده اید. وقتی پای خودتان وسط باشد، شاید بتوانید به حافظه ی خود اطمینان کنید، ولی آیا میتوانید اطمینان کنید که اگر به مشتریتان بگویید، هرگز این افزونه را آپدیت نکن چون تمامی سفارشی سازی هایی که رویش انجام شده از بین می رود، او به حرف شما توجه کرده و این کار را انجام نمیدهد؟ جواب شما با کمی منطق، باید منفی باشد.

اگر از خوره های وردپرسی باشید بدون شک تا حالا بارها برایتان پیش آمده که پس از نصب یک افزونه، حسابی کد آن را دستکاری کنید، در نمای آن تغییر ایجاد کنید و خلاصه کاری کنید که با روز اولش حسابی متفاوت شود. خوب این کار خیلی خوب است. در واقع اینکه شما این توانایی را دارید که یک افزونه را برای استفاده ی خود، کاملا سفارشی کنید واقعا عالی است. حالا بیایید فرض کنیم این کار را برای یک مشتری انجام داده اید. وقتی پای خودتان وسط باشد، شاید بتوانید به حافظه ی خود اطمینان کنید، ولی آیا میتوانید اطمینان کنید که اگر به مشتریتان بگویید، هرگز این افزونه را آپدیت نکن چون تمامی سفارشی سازی هایی که رویش انجام شده از بین می رود، او به حرف شما توجه کرده و این کار را انجام نمیدهد؟ جواب شما با کمی منطق، باید منفی باشد.

 

update-envelope-2jgewgw

 

بنابراین راه حل ما چیست؟ احتمالا بهترین کار این است که یک جوری به خود افزونه بفهمانیم که آقای افزونه، خواهشا حرفی از آپدیت نزن و ما را وسوسه نکن … ! اما از شوخی گذشته، اگر در چنین وضعیتی گیر افتاده اید، راه حل شما بسیار آسان است. کافی است کد زیر را در فایل اصلی افزونه ی مورد نظرتان که مایلید به روز رسانی نشود وارد کرده و آن را ذخیره کنید:

 

add_filter( 'http_request_args', 'dm_prevent_update_check', 10, 2 );
function dm_prevent_update_check( $r, $url ) {
    if ( 0 === strpos( $url, 'http://api.wordpress.org/plugins/update-check/' ) ) {
        $my_plugin = plugin_basename( __FILE__ );
        $plugins = unserialize( $r['body']['plugins'] );
        unset( $plugins->plugins[$my_plugin] );
        unset( $plugins->active[array_search( $my_plugin, $plugins->active )] );
        $r['body']['plugins'] = serialize( $plugins );
    }
    return $r;
}