Вы можете попробовать это:
is_admin() && add_filter( 'gettext',
function( $translated_text, $untranslated_text, $domain )
{
$old = array(
"Plugin <strong>activated</strong>.",
"Selected plugins <strong>activated</strong>."
);
$new = "Captain: The Core is stable and the Plugin is <strong>activated</strong> at full Warp speed";
if ( in_array( $untranslated_text, $old, true ) )
$translated_text = $new;
return $translated_text;
}
, 99, 3 );
чтобы изменить сообщение по своему вкусу:
Мы можем уточнить это дальше:
Если вы хотите активировать только фильтр на /wp-admins/plugins.php
странице, вы можете использовать следующее:
add_action( 'load-plugins.php',
function(){
add_filter( 'gettext', 'b2e_gettext', 99, 3 );
}
);
с:
/**
* Translate the "Plugin activated." string
*/
function b2e_gettext( $translated_text, $untranslated_text, $domain )
{
$old = array(
"Plugin <strong>activated</strong>.",
"Selected plugins <strong>activated</strong>."
);
$new = "Captain: The Core is stable and the Plugin is <strong>activated</strong> at full Warp speed";
if ( in_array( $untranslated_text, $old, true ) )
{
$translated_text = $new;
remove_filter( current_filter(), __FUNCTION__, 99 );
}
return $translated_text;
}
где мы удаляем обратный вызов фильтра gettext, как только у нас есть совпадение.
Если мы хотим проверить количество вызовов gettext, прежде чем мы сопоставим правильную строку, мы можем использовать это:
/**
* Debug gettext filter callback with counter
*/
function b2e_gettext_debug( $translated_text, $untranslated_text, $domain )
{
static $counter = 0;
$counter++;
$old = "Plugin <strong>activated</strong>.";
$new = "Captain: The Core is stable and the Plugin is <strong>activated</strong> at full Warp speed";
if ( $untranslated_text === $old )
{
$translated_text = $new;
printf( 'counter: %d - ', $counter );
remove_filter( current_filter(), __FUNCTION__ , 99 );
}
return $translated_text;
}
и я получаю 301
звонки по моей установке:
Я могу уменьшить это только на 10
звонки:
добавив фильтр gettext в in_admin_header
ловушку, внутри load-plugins.php
ловушки:
add_action( 'load-plugins.php',
function(){
add_action( 'in_admin_header',
function(){
add_filter( 'gettext', 'b2e_gettext_debug', 99, 3 );
}
);
}
);
Обратите внимание, что это не будет считать вызовы gettext до внутреннего перенаправления, используемого при активации плагинов.
Чтобы активировать наш фильтр после внутреннего перенаправления, мы можем проверить параметры GET, используемые при активации плагинов:
/**
* Check if the GET parameters "activate" and "activate-multi" are set
*/
function b2e_is_activated()
{
$return = FALSE;
$activate = filter_input( INPUT_GET, 'activate', FILTER_SANITIZE_STRING );
$activate_multi = filter_input( INPUT_GET, 'activate-multi', FILTER_SANITIZE_STRING );
if( ! empty( $activate ) || ! empty( $activate_multi ) )
$return = TRUE;
return $return;
}
и использовать так:
b2e_is_activated() && add_filter( 'gettext', 'b2e_gettext', 99, 3 );
в предыдущем примере кода.