Current File : /home/giriqfky/universaltoursandtravels.co.in/wp-content/plugins/seraphinite-accelerator//tune.php
<?php
namespace seraph_accel;
if( !defined( 'ABSPATH' ) )
exit;
function _SettingsWizardPage()
{
Plugin::CmnScripts( array( 'Cmn', 'Gen', 'Ui', 'Net', 'AdminUi' ) );
wp_register_script( Plugin::ScriptId( 'Admin' ), add_query_arg( Plugin::GetFileUrlPackageParams(), Plugin::FileUrl( 'Admin.js', __FILE__ ) ), array_merge( array( 'jquery' ), Plugin::CmnScriptId( array( 'Cmn', 'Gen', 'Ui', 'Net' ) ) ), '2.22.9' );
Plugin::Loc_ScriptLoad( Plugin::ScriptId( 'Admin' ) );
wp_enqueue_script( Plugin::ScriptId( 'Admin' ) );
Plugin::DisplayAdminFooterRateItContent();
$rmtCfg = PluginRmtCfg::Get();
$isMultisiteMain = Wp::IsMultisiteMain();
Ui::PostBoxes_MetaboxAdd( 'wizard', Wp::GetLocString( array( 'TitleWiz', 'admin.Common_Settings' ), null, 'seraphinite-accelerator' ) . Ui::Tag( 'span', Ui::AdminBtnsBlock( array( array( 'type' => Ui::AdminBtn_Help, 'href' => Plugin::RmtCfgFld_GetLoc( $rmtCfg, 'Help.SettingsWiz' ) ) ), Ui::AdminHelpBtnModeBlockHeader ) ), false,
function( $callbacks_args, $box )
{
extract( $box[ 'args' ] );
$vDefDontChange = !Gen::GetArrField( Plugin::StateGet(), array( 'settWiz' ) );
echo( Ui::TagOpen( 'div', array( 'class' => 'wizPages' ) ) );
{
echo( Ui::TagOpen( 'div' ) );
{
$fldId = 'fullOrSimple';
echo( Ui::Tag( 'p', Wp::safe_html_x( 'Info', 'admin.SetupWizard_Mode', 'seraphinite-accelerator' ) ) );
echo( Ui::TagOpen( 'p' ) );
{
echo( Ui::RadioBox( Wp::safe_html_x( 'FullRad', 'admin.SetupWizard_Mode', 'seraphinite-accelerator' ), 'seraph_accel/' . $fldId, 'full', true ) );
echo( Ui::Tag( 'span', Wp::safe_html_x( 'FullInfo', 'admin.SetupWizard_Mode', 'seraphinite-accelerator' ), array( 'class' => 'chkradSubBlock' ) ) );
}
echo( Ui::TagClose( 'p' ) );
echo( Ui::TagOpen( 'p' ) );
{
echo( Ui::RadioBox( Wp::safe_html_x( 'SimpleRad', 'admin.SetupWizard_Mode', 'seraphinite-accelerator' ), 'seraph_accel/' . $fldId, 'simple' ) );
echo( Ui::Tag( 'span', Wp::safe_html_x( 'SimpleInfo', 'admin.SetupWizard_Mode', 'seraphinite-accelerator' ), array( 'class' => 'chkradSubBlock' ) ) );
}
echo( Ui::TagClose( 'p' ) );
}
echo( Ui::TagClose( 'div' ) );
echo( Ui::TagOpen( 'div' ) );
{
echo( Ui::Tag( 'p', Wp::safe_html_x( 'Info', 'admin.SetupWizard_SelfDiag', 'seraphinite-accelerator' ) ) );
echo( Ui::Tag( 'p', _SelfDiagContent() ) );
}
echo( Ui::TagClose( 'div' ) );
echo( Ui::TagOpen( 'div' ) );
{
$fldId = 'optPrior';
$vDef = $vDefDontChange ? '' : 'score';
echo( Ui::Tag( 'p', sprintf( Wp::safe_html_x( 'Info_%1$s', 'admin.SetupWizard_OptPrior', 'seraphinite-accelerator' ), $isMultisiteMain ? Wp::safe_html_x( 'Info_1', 'admin.SetupWizard_OptPrior', 'seraphinite-accelerator' ) : '' ) ) );
echo( Ui::TagOpen( 'p' ) );
{
echo( Ui::RadioBox( Wp::safe_html_x( 'ScoreRad', 'admin.SetupWizard_OptPrior', 'seraphinite-accelerator' ), 'seraph_accel/' . $fldId, 'score', $vDef == 'score' ) );
echo( Ui::Tag( 'span', Wp::safe_html_x( 'ScoreInfo', 'admin.SetupWizard_OptPrior', 'seraphinite-accelerator' ), array( 'class' => 'chkradSubBlock' ) ) );
}
echo( Ui::TagClose( 'p' ) );
echo( Ui::TagOpen( 'p' ) );
{
echo( Ui::RadioBox( Wp::safe_html_x( 'FreshRad', 'admin.SetupWizard_OptPrior', 'seraphinite-accelerator' ), 'seraph_accel/' . $fldId, 'fresh', $vDef == 'fresh' ) );
echo( Ui::Tag( 'span', Wp::safe_html_x( 'FreshInfo', 'admin.SetupWizard_OptPrior', 'seraphinite-accelerator' ), array( 'class' => 'chkradSubBlock' ) ) );
}
echo( Ui::TagClose( 'p' ) );
if( $vDefDontChange )
{
echo( Ui::TagOpen( 'p' ) );
{
echo( Ui::RadioBox( Wp::safe_html_x( 'DontModifyRad', 'admin.SetupWizard', 'seraphinite-accelerator' ), 'seraph_accel/' . $fldId, '', $vDef == '' ) );
echo( Ui::Tag( 'span', Wp::safe_html_x( 'DontModifyInfo', 'admin.SetupWizard', 'seraphinite-accelerator' ), array( 'class' => 'chkradSubBlock' ) ) );
}
echo( Ui::TagClose( 'p' ) );
}
}
echo( Ui::TagClose( 'div' ) );
if( $isMultisiteMain )
{
echo( Ui::TagOpen( 'div' ) );
{
$fldId = 'hostPerf';
$vDef = $vDefDontChange ? '' : 'low';
echo( Ui::Tag( 'p', Wp::safe_html_x( 'Info', 'admin.SetupWizard_Host', 'seraphinite-accelerator' ) ) );
echo( Ui::TagOpen( 'p' ) );
{
echo( Ui::RadioBox( Wp::safe_html_x( 'HighRad', 'admin.SetupWizard_Host', 'seraphinite-accelerator' ), 'seraph_accel/' . $fldId, 'high', $vDef == 'high' ) );
echo( Ui::Tag( 'span', Wp::safe_html_x( 'HighInfo', 'admin.SetupWizard_Host', 'seraphinite-accelerator' ), array( 'class' => 'chkradSubBlock' ) ) );
}
echo( Ui::TagClose( 'p' ) );
echo( Ui::TagOpen( 'p' ) );
{
echo( Ui::RadioBox( Wp::safe_html_x( 'MedRad', 'admin.SetupWizard_Host', 'seraphinite-accelerator' ), 'seraph_accel/' . $fldId, 'med', $vDef == 'med' ) );
echo( Ui::Tag( 'span', Wp::safe_html_x( 'MedInfo', 'admin.SetupWizard_Host', 'seraphinite-accelerator' ), array( 'class' => 'chkradSubBlock' ) ) );
}
echo( Ui::TagClose( 'p' ) );
echo( Ui::TagOpen( 'p' ) );
{
echo( Ui::RadioBox( Wp::safe_html_x( 'LowRad', 'admin.SetupWizard_Host', 'seraphinite-accelerator' ), 'seraph_accel/' . $fldId, 'low', $vDef == 'low' ) );
echo( Ui::Tag( 'span', Wp::safe_html_x( 'LowInfo', 'admin.SetupWizard_Host', 'seraphinite-accelerator' ), array( 'class' => 'chkradSubBlock' ) ) );
}
echo( Ui::TagClose( 'p' ) );
if( $vDefDontChange )
{
echo( Ui::TagOpen( 'p' ) );
{
echo( Ui::RadioBox( Wp::safe_html_x( 'DontModifyRad', 'admin.SetupWizard', 'seraphinite-accelerator' ), 'seraph_accel/' . $fldId, '', $vDef == '' ) );
echo( Ui::Tag( 'span', Wp::safe_html_x( 'DontModifyInfo', 'admin.SetupWizard', 'seraphinite-accelerator' ), array( 'class' => 'chkradSubBlock' ) ) );
}
echo( Ui::TagClose( 'p' ) );
}
}
echo( Ui::TagClose( 'div' ) );
}
echo( Ui::TagOpen( 'div' ) );
{
$fldId = 'mobileDep';
$vDef = $vDefDontChange ? '' : 'dep';
echo( Ui::Tag( 'p', Wp::safe_html_x( 'Info', 'admin.SetupWizard_Mobiles', 'seraphinite-accelerator' ) ) );
echo( Ui::TagOpen( 'p' ) );
{
echo( Ui::RadioBox( Wp::safe_html_x( 'DepRad', 'admin.SetupWizard_Mobiles', 'seraphinite-accelerator' ), 'seraph_accel/' . $fldId, 'dep', $vDef == 'dep' ) );
echo( Ui::Tag( 'span', Wp::safe_html_x( 'DepInfo', 'admin.SetupWizard_Mobiles', 'seraphinite-accelerator' ), array( 'class' => 'chkradSubBlock' ) ) );
}
echo( Ui::TagClose( 'p' ) );
echo( Ui::TagOpen( 'p' ) );
{
echo( Ui::RadioBox( Wp::safe_html_x( 'IndepRad', 'admin.SetupWizard_Mobiles', 'seraphinite-accelerator' ), 'seraph_accel/' . $fldId, 'indep', $vDef == 'indep' ) );
echo( Ui::Tag( 'span', Wp::safe_html_x( 'IndepInfo', 'admin.SetupWizard_Mobiles', 'seraphinite-accelerator' ), array( 'class' => 'chkradSubBlock' ) ) );
}
echo( Ui::TagClose( 'p' ) );
if( $vDefDontChange )
{
echo( Ui::TagOpen( 'p' ) );
{
echo( Ui::RadioBox( Wp::safe_html_x( 'DontModifyRad', 'admin.SetupWizard', 'seraphinite-accelerator' ), 'seraph_accel/' . $fldId, '', $vDef == '' ) );
echo( Ui::Tag( 'span', Wp::safe_html_x( 'DontModifyInfo', 'admin.SetupWizard', 'seraphinite-accelerator' ), array( 'class' => 'chkradSubBlock' ) ) );
}
echo( Ui::TagClose( 'p' ) );
}
}
echo( Ui::TagClose( 'div' ) );
echo( Ui::TagOpen( 'div' ) );
{
$fldId = 'cdn';
$fldIdEx = 'cdnAddr';
$vDef = $vDefDontChange ? '' : 'no';
echo( Ui::Tag( 'p', Wp::safe_html_x( 'Info', 'admin.SetupWizard_Cdn', 'seraphinite-accelerator' ) ) );
echo( Ui::TagOpen( 'p' ) );
{
echo( Ui::RadioBox( Wp::safe_html_x( 'NoRad', 'admin.SetupWizard_Cdn', 'seraphinite-accelerator' ), 'seraph_accel/' . $fldId, 'no', $vDef == 'no' ) );
echo( Ui::Tag( 'span', Wp::safe_html_x( 'NoInfo', 'admin.SetupWizard_Cdn', 'seraphinite-accelerator' ), array( 'class' => 'chkradSubBlock' ) ) );
}
echo( Ui::TagClose( 'p' ) );
echo( Ui::TagOpen( 'p' ) );
{
echo( Ui::RadioBox( Wp::safe_html_x( 'UseRad', 'admin.SetupWizard_Cdn', 'seraphinite-accelerator' ), 'seraph_accel/' . $fldId, 'use', $vDef == 'use' ) );
echo( Ui::Tag( 'span', Wp::safe_html_x( 'UseInfo', 'admin.SetupWizard_Cdn', 'seraphinite-accelerator' ) . '<br><br>' . _SettCdnAddrEditor( 'seraph_accel/' . $fldIdEx ), array( 'class' => 'chkradSubBlock' ) ) );
}
echo( Ui::TagClose( 'p' ) );
if( $vDefDontChange )
{
echo( Ui::TagOpen( 'p' ) );
{
echo( Ui::RadioBox( Wp::safe_html_x( 'DontModifyRad', 'admin.SetupWizard', 'seraphinite-accelerator' ), 'seraph_accel/' . $fldId, '', $vDef == '' ) );
echo( Ui::Tag( 'span', Wp::safe_html_x( 'DontModifyInfo', 'admin.SetupWizard', 'seraphinite-accelerator' ), array( 'class' => 'chkradSubBlock' ) ) );
}
echo( Ui::TagClose( 'p' ) );
}
}
echo( Ui::TagClose( 'div' ) );
echo( Ui::TagOpen( 'div' ) );
{
$fldId = 'runOpt';
echo( Ui::Tag( 'p', Wp::safe_html_x( 'FinalInfo', 'admin.SetupWizard', 'seraphinite-accelerator' ) ) );
echo( Ui::TagOpen( 'p' ) );
{
echo( Ui::CheckBox( Wp::safe_html_x( 'RunOptChk', 'admin.SetupWizard', 'seraphinite-accelerator' ), 'seraph_accel/' . $fldId, true, true ) );
}
echo( Ui::TagClose( 'p' ) );
}
echo( Ui::TagClose( 'div' ) );
}
echo( Ui::TagClose( 'div' ) );
},
get_defined_vars()
);
{
$htmlContent = Plugin::GetLockedFeatureLicenseContent( Plugin::DisplayContent_SmallBlock );
if( !empty( $htmlContent ) )
Ui::PostBoxes_MetaboxAdd( 'switchToFull', Plugin::GetSwitchToFullTitle(), false, function( $callbacks_args, $box ) { echo( $box[ 'args' ][ 'c' ] ); }, array( 'c' => $htmlContent ), 'side' );
Ui::PostBoxes_MetaboxAdd( 'about', Plugin::GetAboutPluginTitle(), false, function( $callbacks_args, $box ) { echo( Plugin::GetAboutPluginContent() ); }, null, 'side' );
Ui::PostBoxes_MetaboxAdd( 'aboutVendor', Plugin::GetAboutVendorTitle(), false, function( $callbacks_args, $box ) { echo( Plugin::GetAboutVendorContent() ); }, null, 'side' );
}
Ui::PostBoxes( Plugin::GetSubjectTitle( Wp::GetLocString( array( 'TitleWiz', 'admin.Common_Settings' ), null, 'seraphinite-accelerator' ) ), array( 'body' => array( 'nosort' => true ), 'side' => array( 'nosort' => true ) ),
array(
'bodyContentBegin' => function( $callbacks_args )
{
extract( $callbacks_args );
echo( Ui::TagOpen( 'form', array( 'id' => 'seraph-accel-form', 'method' => 'post', 'onsubmit' => 'return seraph_accel.Ui.Apply(this);' ) ) );
},
'bodyContentEnd' => function( $callbacks_args )
{
extract( $callbacks_args );
Ui::PostBoxes_BottomGroupPanel(
function( $callbacks_args )
{
echo( Plugin::Sett_WizardBtns( 'seraph_accel_saveWizSettings' ) );
}
);
echo( Ui::TagClose( 'form' ) );
}
),
get_defined_vars()
);
}
function _OnFinishSettingsWizard( $args )
{
$sett = Plugin::SettGet();
$settDef = OnOptGetDef_Sett();
{
$fldId = array( 'contPr', 'enable' );
Gen::SetArrField( $sett, $fldId, $args[ 'seraph_accel/fullOrSimple' ] == 'full' );
}
{
$v = null;
switch( $args[ 'seraph_accel/mobileDep' ] )
{
case 'dep': $v = true; break;
case 'indep': $v = false; break;
}
if( $v !== null )
{
$fldId = array( 'cache', 'viewsDeviceGrps' );
$settItemDef = array();
foreach( Gen::GetArrField( $settDef, $fldId, array() ) as $i => $item )
{
if( (isset($item[ 'id' ])?$item[ 'id' ]:null) == 'mobile' )
{
$settItemDef = $item;
break;
}
}
$settItems = Gen::GetArrField( $sett, $fldId, array() );
$settItemIdx = count( $settItems );
foreach( $settItems as $i => $item )
{
if( (isset($item[ 'id' ])?$item[ 'id' ]:null) == 'mobile' )
$settItemIdx = $i;
Gen::SetArrField( $sett, array_merge( $fldId, array( $i, 'enable' ) ), false );
}
Gen::SetArrField( $sett, array_merge( $fldId, array( $settItemIdx ) ), $settItemDef );
Gen::SetArrField( $sett, array_merge( $fldId, array( $settItemIdx, 'enable' ) ), $v );
}
}
{
$flds = array(
array( 'cache', 'lazyInvForcedTmp' ),
array( 'cache', 'updPostOp' ),
);
$vals = array();
switch( $args[ 'seraph_accel/optPrior' ] )
{
case 'score':
$vals = array(
false,
0,
);
break;
case 'fresh':
$vals = array(
true,
2,
);
break;
}
foreach( $vals as $i => $v )
Gen::SetArrField( $sett, $flds[ $i ], $v );
}
if( Wp::IsMultisiteMain() )
{
$fldId1 = array( 'cache', 'maxProc' );
$fldId2 = array( 'cache', 'procInterval' );
$fldId3 = array( 'cache', 'procIntervalShort' );
$fldId4 = array( 'cache', 'timeout' );
$fldId5 = array( 'cache', 'procWorkInt' );
$fldId6 = array( 'cache', 'procPauseInt' );
$vals = null;
switch( $args[ 'seraph_accel/hostPerf' ] )
{
case 'high':
$vals = array(
1 => 4,
2 => 0,
3 => 0,
4 => 24 * 60,
5 => 0.0,
6 => 0.0,
); break;
case 'med':
$vals = array(
1 => 2,
2 => 0,
3 => 0,
4 => 24 * 60,
5 => 0.0,
6 => 0.0,
); break;
case 'low':
$vals = array(
1 => Gen::GetArrField( $settDef, $fldId1, 0 ),
2 => Gen::GetArrField( $settDef, $fldId2, 0 ),
3 => Gen::GetArrField( $settDef, $fldId3, 0 ),
4 => Gen::GetArrField( $settDef, $fldId4, 0 ),
5 => Gen::GetArrField( $settDef, $fldId5, 0 ),
6 => Gen::GetArrField( $settDef, $fldId6, 0 ),
); break;
}
if( $vals )
{
Gen::SetArrField( $sett, $fldId1, $vals[ 1 ] );
Gen::SetArrField( $sett, $fldId2, $vals[ 2 ] );
Gen::SetArrField( $sett, $fldId3, $vals[ 3 ] );
Gen::SetArrField( $sett, $fldId4, $vals[ 4 ] );
Gen::SetArrField( $sett, $fldId5, $vals[ 5 ] );
Gen::SetArrField( $sett, $fldId6, $vals[ 6 ] );
}
}
{
$fldId1 = array( 'contPr', 'cdn', 'items' );
$val = null;
switch( $args[ 'seraph_accel/cdn' ] )
{
case 'use': $val = @rtrim( @trim( Wp::SanitizeUrl( (isset($args[ 'seraph_accel/cdnAddr' ])?$args[ 'seraph_accel/cdnAddr' ]:null) ) ), '/' ); break;
case 'no': $val = ''; break;
}
if( $val !== null )
{
foreach( Gen::GetArrField( $sett, $fldId1, array() ) as $i => $item )
Gen::SetArrField( $sett, array_merge( $fldId1, array( $i, 'enable' ) ), false );
Gen::SetArrField( $sett, array_merge( $fldId1, array( 0 ) ), Gen::GetArrField( $settDef, array_merge( $fldId1, array( 0 ) ), array() ) );
Gen::SetArrField( $sett, array_merge( $fldId1, array( 0, 'addr' ) ), $val );
}
}
$hr = ApplySettings( $sett, !Gen::GetArrField( Plugin::StateGet(), array( 'settWiz' ) ) );
if( Gen::HrFail( $hr ) )
return( $hr );
Plugin::StateUpdateFlds( array( 'settWiz' => null ) );
if( isset( $args[ 'seraph_accel/runOpt' ] ) )
RunOpt();
return( $hr );
}
function _SelfDiagContent()
{
$res = '';
$res .= Ui::TagOpen( 'div', array( 'class' => 'blck' ) );
{
$res .= Ui::Tag( 'div', null, array( 'class' => 'seraph_accel_textarea ctlSpaceVAfter log', 'style' => array( 'overflow' => 'scroll', 'min-height' => '15em', 'max-height' => '50em', 'resize' => 'vertical' ) ) );
$res .= Ui::Tag( 'div',
Ui::Button( esc_html_x( 'Start', 'admin.SelfDiag', 'seraphinite-accelerator' ), true, null, null, 'button', array( 'class' => array( 'ctlSpaceAfter', 'ctlVaMiddle' ), 'style' => array( 'min-width' => '7em' ), 'onclick' => 'seraph_accel.SelfDiag._int.OnStart(this);return false;', 'data-oninit' => 'seraph_accel.SelfDiag._int.OnStart(this,true)' ) ) .
Ui::Button( Wp::GetLocString( 'Cancel' ), false, null, null, 'button', array( 'class' => array( 'ctlSpaceAfter', 'ctlVaMiddle', 'cancel' ), 'style' => array( 'min-width' => '7em' ), 'disabled' => true, 'onclick' => 'seraph_accel.SelfDiag._int.OnCancel(this);return false;' ) ) .
Ui::Spinner( false, array( 'class' => 'ctlSpaceAfter ctlVaMiddle', 'style' => array( 'display' => 'none' ) ) )
);
}
$res .= Ui::TagClose( 'div' );
return( $res );
}
add_action( 'seraph_accel_selfDiag_cronTestTask',
function()
{
PluginFileValues::Del( 'selfDiag_test' );
}
);
function _SelfDiag_GetResponseResString( $url, $requestRes, $body = false )
{
if( is_wp_error( $requestRes ) )
{
if( $requestRes -> get_error_data( 'url' ) )
$url = $requestRes -> get_error_data( 'url' );
return( sprintf( Wp::safe_html_x( 'RequestWpErr_%1$s%2$s', 'admin.SelfDiag', 'seraphinite-accelerator' ), $url, MsgUnpackLocIds( $requestRes -> get_error_message() ) ) );
}
if( (isset($requestRes[ 'url' ])?$requestRes[ 'url' ]:null) )
$url = $requestRes[ 'url' ];
$res = 'HTTP ' . ( isset( $requestRes[ 'method' ] ) ? ( $requestRes[ 'method' ] . ' ' ) : '' ) . wp_remote_retrieve_response_code( $requestRes ) . ' ' . $url;
$res .= '<br>' . GetHeadersResString( array( 'Server Address' => gethostbyname( Gen::GetArrField( Net::UrlParse( $url ), array( 'host' ), '' ) ) ) );
if( isset( $requestRes[ 'headers_sent' ] ) )
$res .= '<br>' . Ui::Tag( 'u', Wp::safe_html_x( 'RequestHeaders', 'admin.SelfDiag', 'seraphinite-accelerator' ) ) . '<br>' . GetHeadersResString( $requestRes[ 'headers_sent' ] );
$res .= '<br>' . Ui::Tag( 'u', Wp::safe_html_x( 'ResponseHeaders', 'admin.SelfDiag', 'seraphinite-accelerator' ) ) . '<br>' . GetHeadersResString( Net::GetHeadersFromWpRemoteGet( $requestRes ) );
if( $body )
{
$bodyC = wp_remote_retrieve_body( $requestRes );
if( is_int( $body ) && strlen( $bodyC ) > $body )
$bodyC = substr( $bodyC, 0, $body ) . '...';
$res .= '<br>' . Ui::Tag( 'u', Wp::safe_html_x( 'Body', 'admin.SelfDiag', 'seraphinite-accelerator' ) ) . '<br>' . htmlspecialchars( $bodyC );
}
return( Ui::Tag( 'span', $res, array( 'style' => array( 'white-space' => 'nowrap' ) ) ) );
}
function OnAsyncTask_SelfDiag_AsyncRequest( $args )
{
PluginFileValues::Del( 'selfDiag_test' );
}
function OnAdminApi_SelfDiag_AsyncRequest( $args )
{
$res = new AnyObj();
$res -> hr = Gen::S_OK;
$res -> hr = PluginFileValues::Set( 'selfDiag_test', true );
if( $res -> hr !== Gen::S_OK )
{
$res -> descr = sprintf( Wp::safe_html_x( 'FileWriteFail_%1$s%2$08X', 'admin.SelfDiag', 'seraphinite-accelerator' ), PluginFileValues::GetDir(), $res -> hr );
return( $res );
}
$timeout = 25;
$timeoutNet = 25;
$res -> hr = Plugin::AsyncFastTaskPost( 'SelfDiag_AsyncRequest', null, $timeout, false, true );
if( $res -> hr !== Gen::S_OK )
{
$res -> descr = sprintf( Wp::safe_html_x( 'FileWriteFail_%1$s%2$08X', 'admin.SelfDiag', 'seraphinite-accelerator' ), Plugin::AsyncTaskGetFileName(), $res -> hr );
}
else
{
$url = Plugin::AsyncTaskPushGetUrl( 'M' );
$requestRes = Plugin::AsyncTaskPushEx( $url, 0 );
$res -> hr = Net::GetHrFromWpRemoteGet( $requestRes );
if( $res -> hr !== Gen::S_OK )
{
$res -> descr = _SelfDiag_GetResponseResString( $url, $requestRes );
}
else
{
$step = 1;
while( $timeout )
{
if( !PluginFileValues::Get( 'selfDiag_test', 1 ) )
break;
$timeout -= $step;
sleep( $step );
}
if( !$timeout )
{
$res -> hr = Gen::S_FAIL;
$res -> descr = Wp::safe_html_x( 'TaskExecTimeoutExpired', 'admin.SelfDiag', 'seraphinite-accelerator' );
}
}
if( $res -> hr !== Gen::S_OK && Gen::GetArrField( Plugin::SettGetGlobal(), array( 'asyncUseCron' ), true ) )
$res -> descr = sprintf( Wp::safe_html_x( 'TaskExecCronProbablyBlocked_%1$s%2$s%3$s', 'admin.SelfDiag', 'seraphinite-accelerator' ), esc_html_x( 'Title', 'admin.Settings_Advanced', 'seraphinite-accelerator' ), esc_html_x( 'Lbl', 'admin.Settings_Advanced_Cron', 'seraphinite-accelerator' ), esc_html_x( 'AsyncUseCronChk', 'admin.Settings_Advanced_Cron', 'seraphinite-accelerator' ) ) . '<br>' . $res -> descr;
}
PluginFileValues::Del( 'selfDiag_test' );
if( $res -> hr == Gen::S_OK )
return( $res );
$url = Plugin::AsyncTaskPushGetUrl( 'M_TEST' );
$testData = 'M_TEST_' . Gen::GetArrField( Net::UrlParse( $url, Net::URLPARSE_F_QUERY ), array( 'query', 'rt' ), '' );
$tm = time();
$requestRes = Plugin::AsyncTaskPushEx( $url, $timeoutNet );
$tm = time() - $tm;
$hr = Net::GetHrFromWpRemoteGet( $requestRes );
$descr = '';
if( $hr !== Gen::S_OK )
{
$descr = _SelfDiag_GetResponseResString( $url, $requestRes );
}
else if( $tm > Plugin::ASYNCTASK_PUSH_TIMEOUT )
{
$hr = Gen::S_FALSE;
$descr = sprintf( Wp::safe_html_x( 'RequestTimeTooLong_%1$s%2$s', 'admin.SelfDiag', 'seraphinite-accelerator' ), ( string )Plugin::ASYNCTASK_PUSH_TIMEOUT, ( string )$tm );
}
else if( !Gen::StrStartsWith( wp_remote_retrieve_body( $requestRes ), $testData ) )
{
$hr = Gen::S_FALSE;
$descr = sprintf( Wp::safe_html_x( 'BdyMismatchCanSkip_%1$s', 'admin.SelfDiag', 'seraphinite-accelerator' ), $testData ) . '<br>' . _SelfDiag_GetResponseResString( $url, $requestRes, 1000 );
}
if( $res -> hr === Gen::S_OK )
$res -> hr = $hr;
if( $descr )
{
if( $res -> descr )
$res -> descr .= '<br>';
$res -> descr .= $descr;
}
return( $res );
}
function OnAdminApi_SelfDiag_SetMaxExecTime( $args )
{
$res = new AnyObj();
$res -> hr = Gen::S_OK;
$res -> descr = '';
$procTmLim = Gen::GetArrField( Plugin::SettGet(), array( 'cache', 'procTmLim' ), 570 );
if( !Gen::SetTimeLimit( $procTmLim + 30 ) )
{
$tmCur = @ini_get( 'max_execution_time' );
if( $tmCur < $procTmLim + 30 )
{
$res -> hr = Gen::HrSuccFromFail( Gen::E_FAIL );
$res -> descr = sprintf( Wp::safe_html_x( 'WarnExecTime_%1$s%2$s', 'admin.SelfDiag', 'seraphinite-accelerator' ), $tmCur, $procTmLim + 30 );
}
}
$memLim = Gen::GetArrField( Plugin::SettGet(), array( 'cache', 'procMemLim' ), 0 );
$memLimCur = wp_convert_hr_to_bytes( @ini_get( 'memory_limit' ) ) / 1024 / 1024;
if( $memLim > $memLimCur )
{
if( $res -> hr == Gen::S_OK )
$res -> hr = Gen::S_FALSE;
if( $res -> descr )
$res -> descr .= '<br>';
$res -> descr .= sprintf( Wp::safe_html_x( 'WarnMemLim_%1$s%2$s%3$s', 'admin.SelfDiag', 'seraphinite-accelerator' ), size_format( $memLimCur * 1024 * 1024, 1 ), size_format( $memLim * 1024 * 1024, 1 ), sprintf( Plugin::GetPluginString( 'NameToDetails_%1$s%2$s' ), esc_html_x( 'Title', 'admin.Settings_Cache_Revalidate', 'seraphinite-accelerator' ), esc_html_x( 'Lbl', 'admin.Settings_Cache_Revalidate_Proc', 'seraphinite-accelerator' ) ) );
}
return( $res );
}
function OnAdminApi_SelfDiag_PageOptimize( $args )
{
$res = new AnyObj();
$res -> hr = Gen::S_OK;
if( !Gen::GetCurRequestTime() )
{
$res -> hr = Gen::E_FAIL;
$res -> descr = Wp::safe_html_x( 'NoCurRequestTime', 'admin.SelfDiag', 'seraphinite-accelerator' );
return( $res );
}
$selfTestSuffix = Gen::MicroTimeStamp();
$tmBegin = Gen::MicroTimeStamp();
$url = add_query_arg( array( 'seraph_accel_prep' => @rawurlencode( @base64_encode( @json_encode( array( 'nonce' => hash_hmac( 'md5', $tmBegin, GetSalt() ), 'selfTest' => $selfTestSuffix, '_tm' => $tmBegin ) ) ) ) ), Wp::GetSiteRootUrl() );
$viewsHeaders = CacheOpGetViewsHeaders( Gen::GetArrField( Plugin::SettGet(), array( 'cache' ), array() ) );
$asyncMode = OnAsyncTasksPushGetMode();
if( $asyncMode == 're' || $asyncMode == 're_r' )
$requestRes = PluginRe::MakeRequest( 'GET', $url, array(), 45 );
else
$requestRes = Wp::RemoteGet( $url, array( 'local' => $asyncMode == 'loc', 'timeout' => 45, 'sslverify' => false, 'headers' => $viewsHeaders[ 'cmn' ] ) );
$res -> hr = Net::GetHrFromWpRemoteGet( $requestRes );
if( $res -> hr !== Gen::S_OK )
{
$res -> descr = _SelfDiag_GetResponseResString( $url, $requestRes );
}
else if( strpos( wp_remote_retrieve_body( $requestRes ), 'selfTest-' . $selfTestSuffix ) === false )
{
$res -> hr = Gen::E_DATACORRUPTED;
$res -> descr = sprintf( Wp::safe_html_x( 'BdyMismatch_%1$s', 'admin.SelfDiag', 'seraphinite-accelerator' ), 'selfTest-' . $selfTestSuffix ) . '<br>' . _SelfDiag_GetResponseResString( $url, $requestRes, 500 );
}
return( $res );
}
function OnAdminApi_SelfDiag_VendorSrv( $args )
{
$res = new AnyObj();
$res -> hr = Gen::S_OK;
$requestRes = PluginRmtCfg::UpdateTestRequest();
$res -> hr = Net::GetHrFromWpRemoteGet( $requestRes );
if( $res -> hr !== Gen::S_OK )
{
$res -> descr = _SelfDiag_GetResponseResString( $url, $requestRes );
}
return( $res );
}
function OnAdminApi_SelfDiag_ExtCache( $args )
{
$sett = Plugin::SettGet();
$isExtCacheAllowed = Gen::GetArrField( $sett, array( 'cache', 'srv' ), false ) || Gen::GetArrField( $sett, array( 'cache', 'srvClr' ), false );
$res = new AnyObj();
$res -> hr = Gen::S_OK;
$url = Wp::GetSiteRootUrl();
$requestRes = Wp::RemoteGet( $url, array( 'timeout' => 45, 'sslverify' => false ) );
$res -> hr = Net::GetHrFromWpRemoteGet( $requestRes );
if( $res -> hr !== Gen::S_OK )
{
$res -> descr = _SelfDiag_GetResponseResString( $url, $requestRes );
return( $res );
}
$tmStamp = Gen::MicroTimeStamp();
$requestRes = Wp::RemoteGet( $url, array( 'timeout' => 45, 'sslverify' => false, 'headers' => array( 'X-Seraph-Accel-test' => $tmStamp ) ) );
$res -> hr = Net::GetHrFromWpRemoteGet( $requestRes );
if( $res -> hr !== Gen::S_OK )
{
$res -> descr = _SelfDiag_GetResponseResString( $url, $requestRes );
}
else if( wp_remote_retrieve_header( $requestRes, 'x-seraph-accel-test' ) !== $tmStamp )
{
if( !$isExtCacheAllowed )
{
$res -> hr = Gen::HrSuccFromFail( Gen::E_DATACORRUPTED );
$types = array();
if( strpos( wp_remote_retrieve_header( $requestRes, 'server' ), 'nginx' ) === 0 && ( wp_remote_retrieve_header( $requestRes, 'x-cache' ) || wp_remote_retrieve_header( $requestRes, 'x-cache-status' ) ) )
$types[] = 'Nginx';
if( wp_remote_retrieve_header( $requestRes, 'x-litespeed-cache' ) )
$types[] = 'LiteSpeed';
if( wp_remote_retrieve_header( $requestRes, 'x-fastcgi-cache' ) )
$types[] = 'FastCGI';
if( wp_remote_retrieve_header( $requestRes, 'cf-cache-status' ) && wp_remote_retrieve_header( $requestRes, 'cf-ray' ) )
$types[] = 'CloudFlare';
if( wp_remote_retrieve_header( $requestRes, 'x-ezoic-cdn' ) )
$types[] = 'Ezoic CDN';
$linkHlp = Ui::Link( array( '', '' ), Plugin::RmtCfgFld_GetLoc( PluginRmtCfg::Get(), 'Help.Settings_Cache_Srv' ), true );
if( $types )
$res -> descr = vsprintf( Wp::safe_html_x( 'HdrMismatchExtCacheType_%1$s%2$s%3$s', 'admin.SelfDiag', 'seraphinite-accelerator' ), array_merge( $linkHlp, array( implode( ', ', array_map( function( $v ) { return( Ui::Tag( 'strong', $v ) ); }, $types ) ) ) ) );
else
$res -> descr = vsprintf( Wp::safe_html_x( 'HdrMismatchExtCache_%1$s%2$s', 'admin.SelfDiag', 'seraphinite-accelerator' ), $linkHlp );
$res -> descr .= '<br>' . sprintf( Wp::safe_html_x( 'HdrMismatch_%1$s', 'admin.SelfDiag', 'seraphinite-accelerator' ), 'X-Seraph-Accel-test: ' . $tmStamp ) . '<br>' . _SelfDiag_GetResponseResString( $url, $requestRes );
}
}
return( $res );
}
function OnAdminApi_SelfDiag_3rdPartySettCompat( $args )
{
$res = new AnyObj();
$res -> hr = Gen::S_OK;
$res -> descr = '';
$res -> cb = function( $res, $sev, $text )
{
if( $sev === Gen::SevErr )
$res -> hr = Gen::E_FAIL;
else if( $sev === Gen::SevInfo )
{
if( $res -> hr == Gen::S_OK )
$res -> hr = Gen::S_FALSE;
}
else if( !Gen::HrFail( $res -> hr ) )
$res -> hr = Gen::S_FAIL;
if( $res -> descr )
$res -> descr .= '<br>';
$res -> descr .= $text;
};
SelfDiag_DetectStateAnd3rdPartySettConflicts( array( $res, 'cb' ), true );
return( $res );
}
function OnAdminApi_SelfDiag_DataBase( $args )
{
$res = new AnyObj();
$res -> hr = Gen::S_OK;
$res -> descr = '';
CacheInitQueueTable( true );
global $wpdb;
if( $wpdb -> last_error )
{
$res -> hr = Gen::E_FAIL;
$res -> descr = vsprintf( Wp::safe_html_x( 'DbTblCreateUpdateFailed_%1$s', 'admin.SelfDiag', 'seraphinite-accelerator' ), array( $wpdb -> last_error ) ) . '<br>' . Ui::Tag( 'em', htmlspecialchars( $wpdb -> last_query ), array( 'style' => array( 'white-space' => 'nowrap' ) ) );
}
return( $res );
}
function GetCodeViewHtmlBlock( $cont )
{
return( Ui::Tag( 'div', str_replace( array( "\r", "\n", "\t", " " ), array( '', '<br>', '	', ' ' ), htmlspecialchars( $cont ) ), array( 'class' => array( 'seraph_accel_textarea' ), 'style' => array( 'overflow' => 'scroll', 'height' => '5em', 'min-height' => '3em', 'max-height' => '20em', 'resize' => 'vertical' ) ) ) );
}
function SelfDiag_DetectStateAnd3rdPartySettConflicts( $cb, $ext = false )
{
$sett = Plugin::SettGet();
$rmtCfg = PluginRmtCfg::Get();
$contRemindRefreshCache = vsprintf( Wp::safe_html_x( 'RemindRefreshCache_%1$s%2$s', 'admin.Notice', 'seraphinite-accelerator' ), Ui::Link( array( '', '' ), menu_page_url( 'seraph_accel_manage', false ) . '#operate' ) );
$isCacheEnabled = Gen::GetArrField( $sett, 'cache/enable', false, '/' );
$isContProcEnabled = Gen::GetArrField( $sett, 'contPr/enable', false, '/' );
$isScriptsDelayLoadEnabled = $isContProcEnabled && Gen::GetArrField( $sett, 'contPr/js/optLoad', false, '/' ) && Gen::GetArrField( $sett, 'contPr/js/nonCrit/timeout/enable', false, '/' ) && Gen::GetArrField( $sett, 'contPr/js/nonCrit/timeout/v', 0, '/' );
$isExtCacheAllowed = Gen::GetArrField( $sett, array( 'cache', 'srv' ), false ) || Gen::GetArrField( $sett, array( 'cache', 'srvClr' ), false );
if( $isCacheEnabled )
{
{
$dir = GetCacheDir();
if( ( !@is_dir( $dir ) && Gen::HrFail( Gen::MakeDir( $dir, true ) ) ) || !@is_writable( $dir ) )
call_user_func_array( $cb, array( Ui::MsgErr, sprintf( Wp::safe_html_x( 'CacheDirNotWrittable_%1$s', 'admin.Notice', 'seraphinite-accelerator' ), $dir ) ) );
}
if( IsWpCacheActive() )
{
$verifyEnvDropin = new AnyObj();
if( !isset( $sett[ PluginOptions::VERPREV ] ) && ( (isset($_SERVER[ 'REQUEST_METHOD' ])?$_SERVER[ 'REQUEST_METHOD' ]:null) == 'GET' ) && !CacheVerifyEnvDropin( $sett, $verifyEnvDropin ) )
{
if( !@file_exists( WP_CONTENT_DIR . '/advanced-cache.php' ) && !@is_writable( WP_CONTENT_DIR ) )
call_user_func_array( $cb, array( Ui::MsgErr, sprintf( Wp::safe_html_x( 'ContentDirNotWrittable_%1$s%2$s', 'admin.Notice', 'seraphinite-accelerator' ), Gen::GetFileName( WP_CONTENT_DIR ), 'advanced-cache.php' ) ) );
else if( !@is_writable( WP_CONTENT_DIR . '/advanced-cache.php' ) )
call_user_func_array( $cb, array( Ui::MsgErr, sprintf( Wp::safe_html_x( 'ContentDropinNotWrittable_%1$s%2$s', 'admin.Notice', 'seraphinite-accelerator' ), Gen::GetFileName( WP_CONTENT_DIR ), 'advanced-cache.php' ) ) );
else
call_user_func_array( $cb, array( Ui::MsgErr, sprintf( Wp::safe_html_x( 'ContentDropinNotMatch_%1$s%2$s', 'admin.Notice', 'seraphinite-accelerator' ), Gen::GetFileName( WP_CONTENT_DIR ), 'advanced-cache.php' ) . ( $ext ? '' : sprintf( Wp::safe_html_x( 'ContentDropinNotMatchEx_%1$s%2$s', 'admin.Notice', 'seraphinite-accelerator' ), GetCodeViewHtmlBlock( $verifyEnvDropin -> needed ), GetCodeViewHtmlBlock( $verifyEnvDropin -> actual ) ) ) ) );
}
else if( !Gen::DoesFuncExist( 'seraph_accel_siteSettInlineDetach' ) )
call_user_func_array( $cb, array( Ui::MsgErr, sprintf( Wp::safe_html_x( 'ContentDropinNotLoaded_%1$s%2$s', 'admin.Notice', 'seraphinite-accelerator' ), Gen::GetFileName( WP_CONTENT_DIR ), 'advanced-cache.php' ) ) );
}
else
{
$cfgFile = Wp::GetConfigFilePath();
if( !@is_writable( $cfgFile ) )
call_user_func_array( $cb, array( Ui::MsgErr, sprintf( Wp::safe_html_x( 'ConfigFileNotWrittable_%1$s', 'admin.Notice', 'seraphinite-accelerator' ), $cfgFile ) ) );
else
call_user_func_array( $cb, array( Ui::MsgErr, Wp::safe_html_x( 'WpCacheNotActive', 'admin.Notice', 'seraphinite-accelerator' ) ) );
}
if( ( in_array( 'br', Gen::GetArrField( $sett, 'cache/encs', array(), '/' ) ) || in_array( 'brotli', Gen::GetArrField( $sett, 'cache/dataCompr', array(), '/' ) ) ) && @version_compare( @phpversion( 'brotli' ), '0.1.0' ) === -1 )
call_user_func_array( $cb, array( Ui::MsgErr, sprintf( Wp::safe_html_x( 'PhpBrotliNotActive_%1$s%2$s', 'admin.Notice', 'seraphinite-accelerator' ), 'BROTLI', '0.1.0' ) ) );
$aLocksInfo = array( array( 'pl', GetCacheDir() ), array( 'dl', GetCacheDir() ) );
foreach( GetSiteIds() as $siteId )
$aLocksInfo[] = array( 'l', GetCacheDir() . '/q/' . $siteId );
foreach( $aLocksInfo as $d )
{
$lock = new Lock( $d[ 0 ], $d[ 1 ] );
if( $lock -> Acquire() )
{
$lock -> Release();
unset( $lock );
continue;
}
call_user_func_array( $cb, array( Ui::MsgErr, sprintf( Wp::safe_html_x( 'TmpFileNotWrittable_%1$s', 'admin.Notice', 'seraphinite-accelerator' ), $lock -> GetFileName() ) ) );
unset( $lock );
break;
}
if( Gen::GetArrField( $sett, 'asyncMode', '', '/' ) === 're_r' )
{
$reFile = PluginRe::GetRootFileName();
$verifyEnvDropin = new AnyObj();
if( !CacheVerifyEnvReRoot( $sett, $verifyEnvDropin ) )
{
if( !@file_exists( $reFile ) && !@is_writable( dirname( $reFile ) ) )
call_user_func_array( $cb, array( Ui::MsgErr, sprintf( Wp::safe_html_x( 'ContentDirNotWrittable_%1$s%2$s', 'admin.Notice', 'seraphinite-accelerator' ), dirname( $reFile ), Gen::GetFileName( $reFile ) ) ) );
else if( !@is_writable( $reFile ) )
call_user_func_array( $cb, array( Ui::MsgErr, sprintf( Wp::safe_html_x( 'ContentDropinNotWrittable_%1$s%2$s', 'admin.Notice', 'seraphinite-accelerator' ), dirname( $reFile ), Gen::GetFileName( $reFile ) ) ) );
else
call_user_func_array( $cb, array( Ui::MsgErr, sprintf( Wp::safe_html_x( 'ContentDropinNotMatch_%1$s%2$s', 'admin.Notice', 'seraphinite-accelerator' ), dirname( $reFile ), Gen::GetFileName( $reFile ) ) . ( $ext ? '' : sprintf( Wp::safe_html_x( 'ContentDropinNotMatchEx_%1$s%2$s', 'admin.Notice', 'seraphinite-accelerator' ), GetCodeViewHtmlBlock( $verifyEnvDropin -> needed ), GetCodeViewHtmlBlock( $verifyEnvDropin -> actual ) ) ) ) );
}
}
}
if( !isset( $sett[ PluginOptions::VERPREV ] ) && ( (isset($_SERVER[ 'REQUEST_METHOD' ])?$_SERVER[ 'REQUEST_METHOD' ]:null) == 'GET' ) && !CacheVerifyEnvNginxConf( $sett ) )
{
call_user_func_array( $cb, array( Ui::MsgErr, sprintf( Wp::safe_html_x( 'ContentNginxConfNotMatch_%1$s', 'admin.Notice', 'seraphinite-accelerator' ), Wp::GetHomePath() . 'seraph-accel-img-compr-redir.conf' ) ) );
}
if( !Gen::DoesFuncExist( 'fsockopen' ) && !Gen::DoesFuncExist( 'curl_exec' ) )
call_user_func_array( $cb, array( Ui::MsgWarn, sprintf( Wp::safe_html_x( 'PhpExtNotActive_%1$s', 'admin.Notice', 'seraphinite-accelerator' ), 'CURL' ) ) );
if( $isContProcEnabled )
{
if( ( Gen::GetArrField( $sett, 'contPr/normalize', 0, '/' ) & 524288 ) && !Gen::DoesFuncExist( 'tidy_parse_string' ) )
call_user_func_array( $cb, array( Ui::MsgWarn, sprintf( Wp::safe_html_x( 'PhpTidyNotActive_%1$s%2$s%3$s', 'admin.Notice', 'seraphinite-accelerator' ), 'TIDY', esc_html_x( 'TidyChk', 'admin.Settings_Html_Fix', 'seraphinite-accelerator' ), Ui::Link( esc_html_x( 'Title', 'admin.Settings_Html', 'seraphinite-accelerator' ), menu_page_url( 'seraph_accel_settings', false ) . '#html' ) ) ) );
if( !Gen::DoesFuncExist( 'iconv' ) )
call_user_func_array( $cb, array( Ui::MsgWarn, sprintf( Wp::safe_html_x( 'PhpExtNotActive_%1$s', 'admin.Notice', 'seraphinite-accelerator' ), 'ICONV' ) ) );
if( !Gen::DoesFuncExist( 'mb_detect_encoding' ) || !Gen::DoesFuncExist( 'mb_convert_encoding' ) )
call_user_func_array( $cb, array( Ui::MsgWarn, sprintf( Wp::safe_html_x( 'PhpExtNotActive_%1$s', 'admin.Notice', 'seraphinite-accelerator' ), 'MBSTRING' ) ) );
if( !Gen::DoesFuncExist( 'imagecreatefromstring' ) )
{
foreach( array( 'webp','avif' ) as $comprType )
if( Gen::GetArrField( $sett, array( 'contPr', 'img', $comprType, 'enable' ), false, '/' ) )
call_user_func_array( $cb, array( Ui::MsgWarn, sprintf( Wp::safe_html_x( 'PhpGdNotActive_%1$s%2$s%3$s', 'admin.Notice', 'seraphinite-accelerator' ), 'GD',
sprintf( Plugin::GetPluginString( 'SubjectTitle_%1$s%2$s' ), esc_html_x( 'Lbl', 'admin.Settings_Images_Compr', 'seraphinite-accelerator' ), Gen::GetArrField( array( 'avif' => sprintf( esc_html_x( 'AvifChk_%1$s%2$s', 'admin.Settings_Images_Compr', 'seraphinite-accelerator' ), '', '' ), 'webp' => sprintf( esc_html_x( 'WebpChk_%1$s', 'admin.Settings_Images_Compr', 'seraphinite-accelerator' ), '' ) ), $comprType, '' ) ),
Ui::Link( esc_html_x( 'Title', 'admin.Settings_Images', 'seraphinite-accelerator' ), menu_page_url( 'seraph_accel_settings', false ) . '#images' ) ) ) );
if( Gen::GetArrField( $sett, 'contPr/img/szAdaptImg', false, '/' ) || Gen::GetArrField( $sett, 'contPr/img/szAdaptBg', false, '/' ) )
call_user_func_array( $cb, array( Ui::MsgWarn, sprintf( Wp::safe_html_x( 'PhpGdNotActive_%1$s%2$s%3$s', 'admin.Notice', 'seraphinite-accelerator' ), 'GD',
sprintf( Plugin::GetPluginString( 'SubjectTitle_%1$s%2$s' ), esc_html_x( 'Title', 'admin.Settings_Images', 'seraphinite-accelerator' ), esc_html_x( 'Lbl', 'admin.Settings_Images_Adapt', 'seraphinite-accelerator' ) ),
Ui::Link( esc_html_x( 'Title', 'admin.Settings_Images', 'seraphinite-accelerator' ), menu_page_url( 'seraph_accel_settings', false ) . '#images' ) ) ) );
}
}
$themeCh = wp_get_theme();
for( $theme = $themeCh; $theme && $theme -> parent(); )
$theme = $theme -> parent();
if( $theme )
{
switch( $theme -> template )
{
case 'woostroid2':
if( $isScriptsDelayLoadEnabled && get_theme_mod( 'page_preloader' ) )
call_user_func_array( $cb, array( Gen::SevWarn, sprintf( Wp::safe_html_x( '3rdSett_DisplayConflict_%1$s%2$s%3$s%4$s', 'admin.Notice', 'seraphinite-accelerator' ), $contRemindRefreshCache, $theme -> name, Wp::GetLocString( 'Show page preloader', null, 'woostroid2' ), esc_html_x( 'OffOptionValue', 'admin.Notice', 'seraphinite-accelerator' ) ) ) );
break;
case 'woodmart':
$themeOpts = get_option( 'xts-woodmart-options' );
if( $isScriptsDelayLoadEnabled && Gen::GetArrField( $themeOpts, 'lazy_loading', null, '/' ) )
call_user_func_array( $cb, array( Gen::SevWarn, sprintf( Wp::safe_html_x( '3rdSett_DisplayConflict_%1$s%2$s%3$s%4$s', 'admin.Notice', 'seraphinite-accelerator' ), $contRemindRefreshCache, $theme -> name, Wp::GetLocString( 'Lazy loading for images', null, 'woodmart' ), esc_html_x( 'OffOptionValue', 'admin.Notice', 'seraphinite-accelerator' ) ) ) );
if( $isScriptsDelayLoadEnabled && Gen::GetArrField( $themeOpts, 'preloader', null, '/' ) )
call_user_func_array( $cb, array( Gen::SevWarn, sprintf( Wp::safe_html_x( '3rdSett_DisplayConflict_%1$s%2$s%3$s%4$s', 'admin.Notice', 'seraphinite-accelerator' ), $contRemindRefreshCache, $theme -> name, Wp::GetLocString( 'Preloader', null, 'woodmart' ), esc_html_x( 'OffOptionValue', 'admin.Notice', 'seraphinite-accelerator' ) ) ) );
break;
case 'dt-the7':
$themeOpts = get_option( $themeCh -> stylesheet == 'dt-the7-child' ? 'the7dtchild' : 'the7' );
if( $isScriptsDelayLoadEnabled && _3rdParty_to_boolean( Gen::GetArrField( $themeOpts, 'general-beautiful_loading', null, '/' ) ) )
call_user_func_array( $cb, array( Gen::SevWarn, sprintf( Wp::safe_html_x( '3rdSett_DisplayConflict_%1$s%2$s%3$s%4$s', 'admin.Notice', 'seraphinite-accelerator' ), $contRemindRefreshCache, $theme -> name, 'Beautiful loading', esc_html_x( 'OffOptionValue', 'admin.Notice', 'seraphinite-accelerator' ) ) ) );
break;
case 'themify-ultra':
$themeOpts = get_option( 'themify_data' );
if( $isCacheEnabled )
if( _3rdParty_to_boolean( Gen::GetArrField( $themeOpts, 'setting-cache-html', null, '/' ) ) )
call_user_func_array( $cb, array( Gen::SevWarn, sprintf( Wp::safe_html_x( '3rdSett_ConflictSoft_%1$s%2$s', 'admin.Notice', 'seraphinite-accelerator' ), $theme -> name, Wp::GetLocString( 'Themify Cache', null, 'themify' ) ) ) );
if( $isScriptsDelayLoadEnabled )
{
if( !_3rdParty_to_boolean( Gen::GetArrField( $themeOpts, 'setting-disable-lazy', null, '/' ) ) )
call_user_func_array( $cb, array( Gen::SevWarn, sprintf( Wp::safe_html_x( '3rdSett_DisplayConflict_%1$s%2$s%3$s%4$s', 'admin.Notice', 'seraphinite-accelerator' ), $contRemindRefreshCache, $theme -> name, Wp::GetLocString( 'Themify Lazy Load', null, 'themify' ), esc_html_x( 'OffOptionValue', 'admin.Notice', 'seraphinite-accelerator' ) ) ) );
if( !_3rdParty_to_boolean( Gen::GetArrField( $themeOpts, 'setting-script_minification-min', null, '/' ) ) )
call_user_func_array( $cb, array( Gen::SevWarn, sprintf( Wp::safe_html_x( '3rdSett_ConflictSoft_%1$s%2$s', 'admin.Notice', 'seraphinite-accelerator' ), $theme -> name, Wp::GetLocString( 'Minified Scripts', null, 'themify' ) ) ) );
if( !_3rdParty_to_boolean( Gen::GetArrField( $themeOpts, 'setting-optimize-wc', null, '/' ) ) )
call_user_func_array( $cb, array( Gen::SevWarn, sprintf( Wp::safe_html_x( '3rdSett_ConflictSoft_%1$s%2$s', 'admin.Notice', 'seraphinite-accelerator' ), $theme -> name, Wp::GetLocString( 'WooCommerce Script Optimization', null, 'themify' ) ) ) );
if( _3rdParty_to_boolean( Gen::GetArrField( $themeOpts, 'setting-jquery', null, '/' ) ) )
call_user_func_array( $cb, array( Gen::SevWarn, sprintf( Wp::safe_html_x( '3rdSett_ConflictSoft_%1$s%2$s', 'admin.Notice', 'seraphinite-accelerator' ), $theme -> name, Wp::GetLocString( 'Defer jQuery script loading', null, 'themify' ) ) ) );
}
break;
case 'thegem':
$themeOpts = get_option( 'thegem_theme_options' );
if( $isScriptsDelayLoadEnabled )
{
if( _3rdParty_to_boolean( Gen::GetArrField( $themeOpts, 'pagespeed_lazy_images_desktop_enable', null, '/' ) ) || _3rdParty_to_boolean( Gen::GetArrField( $themeOpts, 'pagespeed_lazy_images_mobile_enable', null, '/' ) ) )
call_user_func_array( $cb, array( Gen::SevWarn, sprintf( Wp::safe_html_x( '3rdSett_DisplayConflict_%1$s%2$s%3$s%4$s', 'admin.Notice', 'seraphinite-accelerator' ), $contRemindRefreshCache, $theme -> name, Wp::GetLocString( 'Image Loading Optimizations', null, 'thegem' ), esc_html_x( 'OffOptionValue', 'admin.Notice', 'seraphinite-accelerator' ) ) ) );
}
break;
case 'xstore':
if( $isScriptsDelayLoadEnabled )
{
if( get_theme_mod( 'images_loading_type_et-desktop', 'lazy' ) != 'default' )
call_user_func_array( $cb, array( Gen::SevWarn, sprintf( Wp::safe_html_x( '3rdSett_DisplayConflict_%1$s%2$s%3$s%4$s', 'admin.Notice', 'seraphinite-accelerator' ), $contRemindRefreshCache, $theme -> name, Wp::GetLocString( 'Image Loading Type', null, 'xstore' ), esc_html_x( 'OffOptionValue', 'admin.Notice', 'seraphinite-accelerator' ) ) ) );
}
break;
case 'superio':
$themeOpts = get_option( 'superio_theme_options' );
if( $isScriptsDelayLoadEnabled )
{
if( _3rdParty_to_boolean( Gen::GetArrField( $themeOpts, 'image_lazy_loading', null, '/' ) ) )
call_user_func_array( $cb, array( Gen::SevWarn, sprintf( Wp::safe_html_x( '3rdSett_DisplayConflict_%1$s%2$s%3$s%4$s', 'admin.Notice', 'seraphinite-accelerator' ), $contRemindRefreshCache, $theme -> name, Wp::GetLocString( 'Image Lazy Loading', null, 'superio' ), esc_html_x( 'OffOptionValue', 'admin.Notice', 'seraphinite-accelerator' ) ) ) );
}
break;
}
}
$availablePlugins = Plugin::GetAvailablePluginsEx();
$plg = (isset($availablePlugins[ 'wp-smushit' ])?$availablePlugins[ 'wp-smushit' ]:null);
if( !$plg || !(isset($plg[ 'IsActive' ])?$plg[ 'IsActive' ]:null) )
$plg = (isset($availablePlugins[ 'wp-smush-pro' ])?$availablePlugins[ 'wp-smush-pro' ]:null);
if( $plg && (isset($plg[ 'IsActive' ])?$plg[ 'IsActive' ]:null) )
{
$plgOpts = get_option( 'wp-smush-settings' );
if( $isScriptsDelayLoadEnabled && Gen::GetArrField( $plgOpts, 'lazy_load', null, '/' ) )
call_user_func_array( $cb, array( Gen::SevWarn, sprintf( Wp::safe_html_x( '3rdSett_DisplayConflict_%1$s%2$s%3$s%4$s', 'admin.Notice', 'seraphinite-accelerator' ), $contRemindRefreshCache, $plg[ 'Name' ], Wp::GetLocString( 'Lazy Load', null, 'wp-smushit' ), Wp::GetLocString( 'Deactivate', null, 'wp-smushit' ) ) ) );
}
$plg = (isset($availablePlugins[ 'elementor' ])?$availablePlugins[ 'elementor' ]:null);
if( !$plg || !(isset($plg[ 'IsActive' ])?$plg[ 'IsActive' ]:null) )
$plg = (isset($availablePlugins[ 'elementor-pro' ])?$availablePlugins[ 'elementor-pro' ]:null);
if( $plg && (isset($plg[ 'IsActive' ])?$plg[ 'IsActive' ]:null) )
{
if( $isScriptsDelayLoadEnabled && ( get_option( 'elementor_lazy_load_background_images' ) == '1' || ( !strlen( ( string )get_option( 'elementor_lazy_load_background_images' ) ) && get_option( 'elementor_experiment-e_lazyload' ) == 'active' ) ) )
call_user_func_array( $cb, array( Gen::SevWarn, sprintf( Wp::safe_html_x( '3rdSett_DisplayConflict_%1$s%2$s%3$s%4$s', 'admin.Notice', 'seraphinite-accelerator' ), $contRemindRefreshCache, $plg[ 'Name' ], Wp::GetLocString( 'Lazy Load Background Images', null, 'elementor' ), Wp::GetLocString( 'Inactive', null, 'elementor' ) ) ) );
}
$plg = (isset($availablePlugins[ 'ewww-image-optimizer' ])?$availablePlugins[ 'ewww-image-optimizer' ]:null);
if( $plg && (isset($plg[ 'IsActive' ])?$plg[ 'IsActive' ]:null) )
{
if( $isScriptsDelayLoadEnabled && get_option( 'ewww_image_optimizer_lazy_load' ) )
call_user_func_array( $cb, array( Gen::SevWarn, sprintf( Wp::safe_html_x( '3rdSett_DisplayConflict_%1$s%2$s%3$s%4$s', 'admin.Notice', 'seraphinite-accelerator' ), $contRemindRefreshCache, $plg[ 'Name' ], Wp::GetLocString( 'Lazy Load', null, 'ewww-image-optimizer' ), esc_html_x( 'OffOptionValue', 'admin.Notice', 'seraphinite-accelerator' ) ) ) );
if( $isScriptsDelayLoadEnabled && get_option( 'ewww_image_optimizer_webp_for_cdn' ) )
call_user_func_array( $cb, array( Gen::SevWarn, sprintf( Wp::safe_html_x( '3rdSett_DisplayConflict_%1$s%2$s%3$s%4$s', 'admin.Notice', 'seraphinite-accelerator' ), $contRemindRefreshCache, $plg[ 'Name' ], Wp::GetLocString( 'JS WebP Rewriting', null, 'ewww-image-optimizer' ), esc_html_x( 'OffOptionValue', 'admin.Notice', 'seraphinite-accelerator' ) ) ) );
}
$plg = (isset($availablePlugins[ 'webp-express' ])?$availablePlugins[ 'webp-express' ]:null);
if( $plg && (isset($plg[ 'IsActive' ])?$plg[ 'IsActive' ]:null) )
{
if( $isScriptsDelayLoadEnabled && _3rdParty_to_boolean( get_option( 'webp-express-alter-html' ) ) )
{
$plgAlterHtmlOpts = @json_decode( get_option( 'webp-express-alter-html-options' ), true );
switch( get_option( 'webp-express-alter-html-replacement' ) )
{
case 'picture':
if( Gen::GetArrField( $plgAlterHtmlOpts, array( 'alter-html-add-picturefill-js' ) ) )
call_user_func_array( $cb, array( Gen::SevWarn, sprintf( Wp::safe_html_x( '3rdSett_DisplayConflict_%1$s%2$s%3$s%4$s', 'admin.Notice', 'seraphinite-accelerator' ), $contRemindRefreshCache, $plg[ 'Name' ], Wp::GetLocString( 'Dynamically load picturefill.js on older browsers', null, 'webp-express' ), esc_html_x( 'OffOptionValue', 'admin.Notice', 'seraphinite-accelerator' ) ) ) );
break;
case 'url':
if( Gen::GetArrField( $plgAlterHtmlOpts, array( 'only-for-webp-enabled-browsers' ) ) )
call_user_func_array( $cb, array( Gen::SevWarn, sprintf( Wp::safe_html_x( '3rdSett_DisplayConflict_%1$s%2$s%3$s%4$s', 'admin.Notice', 'seraphinite-accelerator' ), $contRemindRefreshCache, $plg[ 'Name' ], Wp::GetLocString( 'Only do the replacements in webp enabled browsers', null, 'webp-express' ), esc_html_x( 'OffOptionValue', 'admin.Notice', 'seraphinite-accelerator' ) ) ) );
break;
}
}
}
$plg = (isset($availablePlugins[ 'rocket-lazy-load' ])?$availablePlugins[ 'rocket-lazy-load' ]:null);
if( $plg && (isset($plg[ 'IsActive' ])?$plg[ 'IsActive' ]:null) )
{
if( $isScriptsDelayLoadEnabled )
call_user_func_array( $cb, array( Gen::SevWarn, sprintf( Wp::safe_html_x( '3rdSett_DisplayConflict_%1$s%2$s%3$s%4$s', 'admin.Notice', 'seraphinite-accelerator' ), $contRemindRefreshCache, $plg[ 'Name' ], $plg[ 'Name' ], esc_html_x( 'OffOptionValue', 'admin.Notice', 'seraphinite-accelerator' ) ) ) );
}
$plg = (isset($availablePlugins[ 'a3-lazy-load' ])?$availablePlugins[ 'a3-lazy-load' ]:null);
if( $plg && (isset($plg[ 'IsActive' ])?$plg[ 'IsActive' ]:null) )
{
$plgOpts = get_option( 'a3_lazy_load_global_settings' );
if( $isScriptsDelayLoadEnabled && Gen::GetArrField( $plgOpts, 'a3l_apply_lazyloadxt' ) )
call_user_func_array( $cb, array( Gen::SevWarn, sprintf( Wp::safe_html_x( '3rdSett_DisplayConflict_%1$s%2$s%3$s%4$s', 'admin.Notice', 'seraphinite-accelerator' ), $contRemindRefreshCache, $plg[ 'Name' ], Wp::GetLocString( 'Enable Lazy Load', null, 'a3-lazy-load' ), esc_html_x( 'OffOptionValue', 'admin.Notice', 'seraphinite-accelerator' ) ) ) );
}
$plg = (isset($availablePlugins[ 'optimole-wp' ])?$availablePlugins[ 'optimole-wp' ]:null);
if( $plg && (isset($plg[ 'IsActive' ])?$plg[ 'IsActive' ]:null) )
{
$plgOpts = wp_parse_args( get_option( 'optml_settings' ) );
if( $isScriptsDelayLoadEnabled && _3rdParty_to_boolean( Gen::GetArrField( $plgOpts, 'lazyload', null, '/' ) ) )
call_user_func_array( $cb, array( Gen::SevWarn, sprintf( Wp::safe_html_x( '3rdSett_DisplayConflict_%1$s%2$s%3$s%4$s', 'admin.Notice', 'seraphinite-accelerator' ), $contRemindRefreshCache, $plg[ 'Name' ], Wp::GetLocString( 'Lazyload', null, 'optimole-wp' ), esc_html_x( 'OffOptionValue', 'admin.Notice', 'seraphinite-accelerator' ) ) ) );
}
$plg = (isset($availablePlugins[ 'shortpixel-adaptive-images' ])?$availablePlugins[ 'shortpixel-adaptive-images' ]:null);
if( $plg && (isset($plg[ 'IsActive' ])?$plg[ 'IsActive' ]:null) )
{
if( $isScriptsDelayLoadEnabled )
call_user_func_array( $cb, array( Gen::SevWarn, sprintf( Wp::safe_html_x( '3rdMdl_Conflict_%1$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ] ) ) );
}
$plg = (isset($availablePlugins[ 'async-javascript' ])?$availablePlugins[ 'async-javascript' ]:null);
if( $plg && (isset($plg[ 'IsActive' ])?$plg[ 'IsActive' ]:null) )
{
if( $isContProcEnabled )
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdMdl_Conflict_%1$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ] ) ) );
}
$plg = (isset($availablePlugins[ 'revslider' ])?$availablePlugins[ 'revslider' ]:null);
if( $plg && (isset($plg[ 'IsActive' ])?$plg[ 'IsActive' ]:null) )
{
$plgOpts = get_option( 'revslider-global-settings' );
if( !is_array( $plgOpts ) )
$plgOpts = @json_decode( $plgOpts, true );
if( $isScriptsDelayLoadEnabled )
{
if( _3rdParty_to_boolean( Gen::GetArrField( $plgOpts, 'lazyonbg', 'false' ) ) )
call_user_func_array( $cb, array( Gen::SevWarn, sprintf( Wp::safe_html_x( '3rdSett_DisplayConflict_%1$s%2$s%3$s%4$s', 'admin.Notice', 'seraphinite-accelerator' ), $contRemindRefreshCache, $plg[ 'Name' ], Wp::GetLocString( 'Lazy Load on BG Images', null, 'revslider' ), esc_html_x( 'OffOptionValue', 'admin.Notice', 'seraphinite-accelerator' ) ) ) );
if( defined( 'RS_REVISION' ) && version_compare( RS_REVISION, '6.5' ) >= 0 && !in_array( Gen::GetArrField( $plgOpts, 'forceLazyLoading', 'smart' ), array( '', 'none' ), true ) )
call_user_func_array( $cb, array( Gen::SevWarn, sprintf( Wp::safe_html_x( '3rdSett_DisplayConflict_%1$s%2$s%3$s%4$s', 'admin.Notice', 'seraphinite-accelerator' ), $contRemindRefreshCache, $plg[ 'Name' ], Wp::GetLocString( 'Default lazy loading in modules', null, 'revslider' ), Wp::GetLocString( 'No Change', null, 'revslider' ) ) ) );
}
}
$plg = (isset($availablePlugins[ 'wp-optimize' ])?$availablePlugins[ 'wp-optimize' ]:null);
if( $plg && (isset($plg[ 'IsActive' ])?$plg[ 'IsActive' ]:null) )
{
$plgOpts = get_option( 'wpo_cache_config' );
if( $isCacheEnabled && Gen::GetArrField( $plgOpts, 'enable_page_caching' ) )
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdSett_Conflict_%1$s%2$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ], Wp::GetLocString( 'Enable page caching', null, 'wp-optimize' ) ) ) );
$plgOpts = get_option( 'wpo_minify_config' );
if( $isContProcEnabled )
{
if( Gen::GetArrField( $plgOpts, 'enabled' ) )
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdSett_Conflict_%1$s%2$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ], Wp::GetLocString( 'Enable Minify', null, 'wp-optimize' ) ) ) );
}
}
$plg = (isset($availablePlugins[ 'wp-rocket' ])?$availablePlugins[ 'wp-rocket' ]:null);
if( $plg && (isset($plg[ 'IsActive' ])?$plg[ 'IsActive' ]:null) )
{
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdMdl_Conflict_%1$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ] ) ) );
}
$plg = (isset($availablePlugins[ 'w3-total-cache' ])?$availablePlugins[ 'w3-total-cache' ]:null);
if( $plg && (isset($plg[ 'IsActive' ])?$plg[ 'IsActive' ]:null) )
{
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdMdl_Conflict_%1$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ] ) ) );
}
$plg = (isset($availablePlugins[ 'nitropack' ])?$availablePlugins[ 'nitropack' ]:null);
if( $plg && (isset($plg[ 'IsActive' ])?$plg[ 'IsActive' ]:null) )
{
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdMdl_Conflict_%1$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ] ) ) );
}
$plg = (isset($availablePlugins[ 'wp-fastest-cache' ])?$availablePlugins[ 'wp-fastest-cache' ]:null);
if( $plg && (isset($plg[ 'IsActive' ])?$plg[ 'IsActive' ]:null) )
{
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdMdl_Conflict_%1$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ] ) ) );
}
$plg = (isset($availablePlugins[ 'hummingbird-performance' ])?$availablePlugins[ 'hummingbird-performance' ]:null);
if( $plg && (isset($plg[ 'IsActive' ])?$plg[ 'IsActive' ]:null) )
{
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdMdl_Conflict_%1$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ] ) ) );
}
$plg = (isset($availablePlugins[ 'wp-hummingbird' ])?$availablePlugins[ 'wp-hummingbird' ]:null);
if( $plg && (isset($plg[ 'IsActive' ])?$plg[ 'IsActive' ]:null) )
{
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdMdl_Conflict_%1$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ] ) ) );
}
$plg = (isset($availablePlugins[ 'jetpack' ])?$availablePlugins[ 'jetpack' ]:null);
if( $plg && (isset($plg[ 'IsActive' ])?$plg[ 'IsActive' ]:null) )
{
$plgOpts = Gen::GetArrField( get_option( 'jetpack_active_modules' ), array( '' ), array() );
if( $isCacheEnabled && in_array( 'photon', $plgOpts ) )
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdSett_Conflict_%1$s%2$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ], Wp::GetLocString( 'Enable site accelerator', null, 'jetpack' ) ) ) );
if( $isScriptsDelayLoadEnabled && in_array( 'lazy-images', $plgOpts ) )
call_user_func_array( $cb, array( Gen::SevWarn, sprintf( Wp::safe_html_x( '3rdSett_DisplayConflict_%1$s%2$s%3$s%4$s', 'admin.Notice', 'seraphinite-accelerator' ), $contRemindRefreshCache, $plg[ 'Name' ], Wp::GetLocString( 'Enable Lazy Loading for images', null, 'jetpack' ), esc_html_x( 'OffOptionValue', 'admin.Notice', 'seraphinite-accelerator' ) ) ) );
}
$plg = (isset($availablePlugins[ 'autoptimize' ])?$availablePlugins[ 'autoptimize' ]:null);
if( $plg && (isset($plg[ 'IsActive' ])?$plg[ 'IsActive' ]:null) )
{
if( $isContProcEnabled )
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdMdl_Conflict_%1$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ] ) ) );
}
$plg = (isset($availablePlugins[ 'litespeed-cache' ])?$availablePlugins[ 'litespeed-cache' ]:null);
if( $plg && (isset($plg[ 'IsActive' ])?$plg[ 'IsActive' ]:null) )
{
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdMdl_Conflict_%1$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ] ) ) );
}
$plg = (isset($availablePlugins[ 'sg-cachepress' ])?$availablePlugins[ 'sg-cachepress' ]:null);
if( $plg )
{
if( (isset($plg[ 'IsActive' ])?$plg[ 'IsActive' ]:null) )
{
if( $isCacheEnabled && get_option( 'siteground_optimizer_enable_cache' ) && !$isExtCacheAllowed )
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdSett_Conflict_%1$s%2$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ], Wp::GetLocString( 'Dynamic Caching', null, 'sg-cachepress' ) ) ) );
if( $isContProcEnabled )
{
if( get_option( 'siteground_optimizer_optimize_html' ) )
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdSett_Conflict_%1$s%2$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ], Wp::GetLocString( 'Minify the HTML Output', null, 'sg-cachepress' ) ) ) );
if( get_option( 'siteground_optimizer_optimize_javascript' ) )
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdSett_Conflict_%1$s%2$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ], Wp::GetLocString( 'Minify JavaScript Files', null, 'sg-cachepress' ) ) ) );
if( get_option( 'siteground_optimizer_combine_javascript' ) )
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdSett_Conflict_%1$s%2$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ], Wp::GetLocString( 'Combine JavaScript Files', null, 'sg-cachepress' ) ) ) );
if( get_option( 'siteground_optimizer_optimize_javascript_async' ) )
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdSett_Conflict_%1$s%2$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ], Wp::GetLocString( 'Defer Render-blocking JavaScript', null, 'sg-cachepress' ) ) ) );
if( get_option( 'siteground_optimizer_optimize_css' ) )
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdSett_Conflict_%1$s%2$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ], Wp::GetLocString( 'Minify CSS Files', null, 'sg-cachepress' ) ) ) );
if( get_option( 'siteground_optimizer_combine_css' ) )
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdSett_Conflict_%1$s%2$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ], Wp::GetLocString( 'Combine CSS Files', null, 'sg-cachepress' ) ) ) );
if( get_option( 'siteground_optimizer_optimize_web_fonts' ) )
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdSett_Conflict_%1$s%2$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ], Wp::GetLocString( 'Web Fonts Optimization', null, 'sg-cachepress' ) ) ) );
}
if( $isScriptsDelayLoadEnabled && get_option( 'siteground_optimizer_lazyload_images' ) )
call_user_func_array( $cb, array( Gen::SevWarn, sprintf( Wp::safe_html_x( '3rdSett_DisplayConflict_%1$s%2$s%3$s%4$s', 'admin.Notice', 'seraphinite-accelerator' ), $contRemindRefreshCache, $plg[ 'Name' ], Wp::GetLocString( 'Lazy Load Media', null, 'sg-cachepress' ), esc_html_x( 'OffOptionValue', 'admin.Notice', 'seraphinite-accelerator' ) ) ) );
}
else
{
if( $isCacheEnabled )
call_user_func_array( $cb, array( Gen::SevWarn, sprintf( Wp::safe_html_x( '3rdMdl_ConflictOff_%1$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ] ) ) );
}
}
$plg = (isset($availablePlugins[ 'fast-velocity-minify' ])?$availablePlugins[ 'fast-velocity-minify' ]:null);
if( $plg && (isset($plg[ 'IsActive' ])?$plg[ 'IsActive' ]:null) )
{
if( $isCacheEnabled )
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdMdl_Conflict_%1$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ] ) ) );
}
$plg = (isset($availablePlugins[ 'breeze' ])?$availablePlugins[ 'breeze' ]:null);
if( $plg && (isset($plg[ 'IsActive' ])?$plg[ 'IsActive' ]:null) )
{
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdMdl_Conflict_%1$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ] ) ) );
}
$plg = (isset($availablePlugins[ 'wp-meteor' ])?$availablePlugins[ 'wp-meteor' ]:null);
if( $plg && (isset($plg[ 'IsActive' ])?$plg[ 'IsActive' ]:null) )
{
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdMdl_Conflict_%1$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ] ) ) );
}
$plg = (isset($availablePlugins[ 'wp-cloudflare-page-cache' ])?$availablePlugins[ 'wp-cloudflare-page-cache' ]:null);
if( $plg && (isset($plg[ 'IsActive' ])?$plg[ 'IsActive' ]:null) )
{
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdMdl_Conflict_%1$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ] ) ) );
}
$plg = (isset($availablePlugins[ 'wp-super-cache' ])?$availablePlugins[ 'wp-super-cache' ]:null);
if( $plg && (isset($plg[ 'IsActive' ])?$plg[ 'IsActive' ]:null) )
{
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdMdl_Conflict_%1$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ] ) ) );
}
$plg = (isset($availablePlugins[ 'a2-optimized-wp' ])?$availablePlugins[ 'a2-optimized-wp' ]:null);
if( $plg && (isset($plg[ 'IsActive' ])?$plg[ 'IsActive' ]:null) )
{
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdMdl_Conflict_%1$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ] ) ) );
}
$plg = (isset($availablePlugins[ 'wp-asset-clean-up' ])?$availablePlugins[ 'wp-asset-clean-up' ]:null);
if( $plg && (isset($plg[ 'IsActive' ])?$plg[ 'IsActive' ]:null) )
{
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdMdl_Conflict_%1$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ] ) ) );
}
$plg = (isset($availablePlugins[ 'flying-pages' ])?$availablePlugins[ 'flying-pages' ]:null);
if( $plg && (isset($plg[ 'IsActive' ])?$plg[ 'IsActive' ]:null) )
{
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdMdl_Conflict_%1$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ] ) ) );
}
$plg = (isset($availablePlugins[ 'flying-scripts' ])?$availablePlugins[ 'flying-scripts' ]:null);
if( $plg && (isset($plg[ 'IsActive' ])?$plg[ 'IsActive' ]:null) )
{
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdMdl_Conflict_%1$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ] ) ) );
}
$plg = (isset($availablePlugins[ 'debloat' ])?$availablePlugins[ 'debloat' ]:null);
if( $plg && (isset($plg[ 'IsActive' ])?$plg[ 'IsActive' ]:null) )
{
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdMdl_Conflict_%1$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ] ) ) );
}
$plg = (isset($availablePlugins[ 'clearfy' ])?$availablePlugins[ 'clearfy' ]:null);
if( $plg && (isset($plg[ 'IsActive' ])?$plg[ 'IsActive' ]:null) )
{
$deactive_preinstall_components = Gen::GetArrField( get_option( 'wbcr_clearfy_deactive_preinstall_components' ), array( '' ), array() );
if( $isCacheEnabled && get_option( 'wbcr_clearfy_enable_cache' ) && !in_array( 'cache', $deactive_preinstall_components ) )
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdSett_Conflict_%1$s%2$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ], Wp::GetLocString( 'Enable cache', null, 'clearfy' ) ) ) );
if( $isContProcEnabled && !in_array( 'minify_and_combine', $deactive_preinstall_components ) )
{
if( get_option( 'wbcr_clearfy_css_optimize' ) )
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdSett_Conflict_%1$s%2$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ], Wp::GetLocString( 'Optimize CSS Code?', null, 'minify-and-combine' ) ) ) );
if( get_option( 'wbcr_clearfy_css_aggregate' ) )
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdSett_Conflict_%1$s%2$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ], Wp::GetLocString( 'Aggregate CSS-files?', null, 'minify-and-combine' ) ) ) );
if( get_option( 'wbcr_clearfy_css_include_inline' ) )
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdSett_Conflict_%1$s%2$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ], Wp::GetLocString( 'Also aggregate inline CSS?', null, 'minify-and-combine' ) ) ) );
if( get_option( 'wbcr_clearfy_css_defer' ) )
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdSett_Conflict_%1$s%2$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ], Wp::GetLocString( 'Inline and Defer CSS?', null, 'minify-and-combine' ) ) ) );
if( get_option( 'wbcr_clearfy_css_inline' ) )
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdSett_Conflict_%1$s%2$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ], Wp::GetLocString( 'Inline all CSS?', null, 'minify-and-combine' ) ) ) );
if( get_option( 'wbcr_clearfy_js_optimize' ) )
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdSett_Conflict_%1$s%2$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ], Wp::GetLocString( 'Optimize JavaScript Code?', null, 'minify-and-combine' ) ) ) );
if( get_option( 'wbcr_clearfy_js_aggregate' ) )
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdSett_Conflict_%1$s%2$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ], Wp::GetLocString( 'Aggregate JS-files?', null, 'minify-and-combine' ) ) ) );
if( get_option( 'wbcr_clearfy_js_include_inline' ) )
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdSett_Conflict_%1$s%2$s', 'admin.Notice', 'seraphinite-accelerator' ), $plg[ 'Name' ], Wp::GetLocString( 'Also aggregate inline JS?', null, 'minify-and-combine' ) ) ) );
}
}
if( !$ext )
return;
if( $isContProcEnabled )
{
$requestRes = Wp::RemoteGet( Wp::GetSiteRootUrl(), array( 'timeout' => 30, 'sslverify' => false ) );
if( Net::GetHrFromWpRemoteGet( $requestRes ) === Gen::S_OK )
{
$data = wp_remote_retrieve_body( $requestRes );
if( $isContProcEnabled )
{
if( preg_match( '@<script[^>]+type\\s*=\\s*text/ez-screx\\W@', $data ) )
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdExtSett_Conflict_%1$s%2$s', 'admin.SelfDiag', 'seraphinite-accelerator' ), 'Ezoic', 'Leap' ) ) );
if( preg_match( '@<script[^>]+src\\s*=[\'"][^\'"]+cloudflare-static/rocket-loader\\.@', $data ) )
call_user_func_array( $cb, array( Gen::SevErr, sprintf( Wp::safe_html_x( '3rdExtSett_Conflict_%1$s%2$s', 'admin.SelfDiag', 'seraphinite-accelerator' ), 'CloudFlare', 'Rocket Loader' ) ) );
}
if( preg_match( '@<script[^>]+src\\s*=[\'"][^\'"]+/challenge-platform/[^\'"]+/scripts/invisible\\.@', $data ) )
call_user_func_array( $cb, array( Gen::SevInfo, sprintf( Wp::safe_html_x( '3rdExtSett_SpeedDecr_%1$s%2$s', 'admin.SelfDiag', 'seraphinite-accelerator' ), 'CloudFlare', 'Bot Fight Mode' ) ) );
}
}
if( $isContProcEnabled )
{
$bRedirOwn = Gen::GetArrField( $sett, array( 'contPr', 'img', 'redirOwn' ), false );
foreach( array( 'webp','avif' ) as $comprType )
{
if( !Gen::GetArrField( $sett, array( 'contPr', 'img', $comprType, 'enable' ), false ) )
continue;
$contMimeTypeTest = 'image/' . $comprType;
$optionText = sprintf( Plugin::GetPluginString( 'SubjectTitle_%1$s%2$s' ), esc_html_x( 'Lbl', 'admin.Settings_Images_Compr', 'seraphinite-accelerator' ), Gen::GetArrField( array( 'avif' => sprintf( esc_html_x( 'AvifChk_%1$s%2$s', 'admin.Settings_Images_Compr', 'seraphinite-accelerator' ), '', '' ), 'webp' => sprintf( esc_html_x( 'WebpChk_%1$s', 'admin.Settings_Images_Compr', 'seraphinite-accelerator' ), '' ) ), $comprType, '' ) );
if( $bRedirOwn )
$testUrl = add_query_arg( array_merge( Image_MakeOwnRedirUrlArgs( ltrim( Net::Url2Uri( plugins_url( '/Images/Test.png', __FILE__ ), true ), '/' ) ), array( '_' => Gen::MicroTimeStamp() ) ), Wp::GetSiteWpRootUrl() );
else
$testUrl = add_query_arg( array( '_' => Gen::MicroTimeStamp() ), plugins_url( '/Images/Test.png', __FILE__ ) );
$requestRes = Wp::RemoteGet( $testUrl, array( 'timeout' => 30, 'sslverify' => false, 'headers' => array( 'Accept' => $contMimeTypeTest . ',image/*,*/*;q=0.8' ) ) );
if( Net::GetHrFromWpRemoteGet( $requestRes ) !== Gen::S_OK )
{
if( $bRedirOwn )
call_user_func_array( $cb, array( Gen::SevWarn, _SelfDiag_GetResponseResString( $testUrl, $requestRes ) ) );
}
else
{
$contMimeType = ( string )wp_remote_retrieve_header( $requestRes, 'content-type' );
if( strpos( $contMimeType, $contMimeTypeTest ) === false )
call_user_func_array( $cb, array( Gen::SevWarn, vsprintf( Wp::safe_html_x( 'ImgConvRedir_NotActive_%1$s%2$s%3$s%4$s%5$s', 'admin.Notice', 'seraphinite-accelerator' ), array_merge( Ui::Link( array( '', '' ), Plugin::RmtCfgFld_GetLoc( $rmtCfg, 'Help.Settings_Images_Compr' ), true, array( ) ), array( $comprType, $optionText, esc_html_x( 'RedirOwnChk', 'admin.Settings_Images_Compr', 'seraphinite-accelerator' ) ) ) ) ) );
}
$hr = Img::ConvertDataEx( $dataCnv, @file_get_contents( __DIR__ . '/Images/Test.png' ), $contMimeTypeTest );
if( Gen::HrFail( $hr ) )
if( $hr == Gen::E_UNSUPPORTED )
call_user_func_array( $cb, array( Gen::SevWarn, vsprintf( Wp::safe_html_x( 'ImgConv_NotSupp_%1$s%2$s%3$s%4$s', 'admin.Notice', 'seraphinite-accelerator' ), array_merge( Ui::Link( array( '', '' ), Plugin::RmtCfgFld_GetLoc( $rmtCfg, 'Help.Settings_Images_Compr' ), true, array( ) ), array( $comprType, $optionText ) ) ) ) );
else
call_user_func_array( $cb, array( Gen::SevWarn, vsprintf( Wp::safe_html_x( 'ImgConv_NotWork_%1$s%2$s%3$s%4$s%5$s', 'admin.Notice', 'seraphinite-accelerator' ), array_merge( Ui::Link( array( '', '' ), Plugin::RmtCfgFld_GetLoc( $rmtCfg, 'Help.Settings_Images_Compr' ), true, array( ) ), array( $comprType, $optionText, Gen::LastErrDsc_Is() ? MsgUnpackLocIds( Gen::LastErrDsc_Get() ) : sprintf( '0x%08X', $hr ) ) ) ) ) );
}
}
if( UseGzAssets( Gen::GetArrField( $sett, array( 'cache' ), array() ) ) )
{
foreach( array( 'js', 'css' ) as $assetType )
{
$dataTest = @file_get_contents( __DIR__ . '/Images/Test.' . $assetType );
$testUrl = add_query_arg( array( '_' => Gen::MicroTimeStamp() ), plugins_url( '/Images/Test.' . $assetType, __FILE__ ) );
$requestRes = Wp::RemoteGet( $testUrl, array( 'timeout' => 30, 'sslverify' => false, 'headers' => array( 'Accept' => 'text/' . $assetType . ',*/*;q=0.1', 'Accept-Encoding' => 'gzip, deflate, br' ) ) );
if( Net::GetHrFromWpRemoteGet( $requestRes ) !== Gen::S_OK )
{
}
else
{
$data = wp_remote_retrieve_body( $requestRes );
if( $data )
{
if( $data !== $dataTest )
call_user_func_array( $cb, array( Gen::SevWarn, sprintf( Wp::safe_html_x( 'AssetCompr_Bad_%1$s', 'admin.Notice', 'seraphinite-accelerator' ), $assetType ) ) );
}
}
}
}
}
function _3rdParty_to_boolean( $value )
{
if( in_array( $value, [ 'yes', 'enabled', 'true', '1', 'on' ], true ) )
return( true );
if( in_array( $value, [ 'no', 'disabled', 'false', '0', 'off' ], true ) )
return( false );
return( boolval( $value ) );
}