Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/clone/wp-conte.../plugins/popup-ma.../classes
File: AssetCache.php
[500] Fix | Delete
$popup = pum_get_popup( $popup->ID );
[501] Fix | Delete
[502] Fix | Delete
if ( ! pum_is_popup( $popup ) ) {
[503] Fix | Delete
continue;
[504] Fix | Delete
}
[505] Fix | Delete
[506] Fix | Delete
ob_start();
[507] Fix | Delete
[508] Fix | Delete
if ( $popup->get_setting( 'zindex', false ) ) {
[509] Fix | Delete
$zindex = esc_attr( $popup->get_setting( 'zindex' ) );
[510] Fix | Delete
echo sprintf( "#pum-%d {z-index: %d}\r\n", esc_attr( $popup->ID ), esc_attr( $zindex ) );
[511] Fix | Delete
}
[512] Fix | Delete
[513] Fix | Delete
// Allow per popup CSS additions.
[514] Fix | Delete
do_action( 'pum_generate_popup_css', $popup->ID );
[515] Fix | Delete
[516] Fix | Delete
$popup_css .= ob_get_clean();
[517] Fix | Delete
}
[518] Fix | Delete
[519] Fix | Delete
// Clear the global $current.
[520] Fix | Delete
pum()->current_popup = null;
[521] Fix | Delete
}
[522] Fix | Delete
[523] Fix | Delete
return $popup_css;
[524] Fix | Delete
}
[525] Fix | Delete
[526] Fix | Delete
/**
[527] Fix | Delete
* Used when asset cache is not enabled.
[528] Fix | Delete
*
[529] Fix | Delete
* @return string
[530] Fix | Delete
*/
[531] Fix | Delete
public static function inline_css() {
[532] Fix | Delete
ob_start();
[533] Fix | Delete
[534] Fix | Delete
// phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped
[535] Fix | Delete
echo self::generate_font_imports();
[536] Fix | Delete
echo self::generate_popup_theme_styles();
[537] Fix | Delete
[538] Fix | Delete
// Render popup styles.
[539] Fix | Delete
echo self::generate_popup_styles();
[540] Fix | Delete
[541] Fix | Delete
// Render any extra styles globally added.
[542] Fix | Delete
echo self::custom_css();
[543] Fix | Delete
[544] Fix | Delete
// phpcs:enable WordPress.Security.EscapeOutput.OutputNotEscaped
[545] Fix | Delete
return ob_get_clean();
[546] Fix | Delete
}
[547] Fix | Delete
[548] Fix | Delete
/**
[549] Fix | Delete
* Generate Popup Theme Styles
[550] Fix | Delete
*
[551] Fix | Delete
* @return string
[552] Fix | Delete
*/
[553] Fix | Delete
public static function custom_css() {
[554] Fix | Delete
// Reset ob.
[555] Fix | Delete
ob_start();
[556] Fix | Delete
[557] Fix | Delete
// Render any extra styles globally added.
[558] Fix | Delete
if ( ! empty( $GLOBALS['pum_extra_styles'] ) ) {
[559] Fix | Delete
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
[560] Fix | Delete
echo $GLOBALS['pum_extra_styles'];
[561] Fix | Delete
}
[562] Fix | Delete
[563] Fix | Delete
// Allows rendering extra css via action.
[564] Fix | Delete
do_action( 'pum_styles' );
[565] Fix | Delete
[566] Fix | Delete
return ob_get_clean();
[567] Fix | Delete
}
[568] Fix | Delete
[569] Fix | Delete
/**
[570] Fix | Delete
* Generate Popup Theme Styles
[571] Fix | Delete
*
[572] Fix | Delete
* @return mixed|string
[573] Fix | Delete
*/
[574] Fix | Delete
public static function generate_font_imports() {
[575] Fix | Delete
$imports = '';
[576] Fix | Delete
[577] Fix | Delete
$google_fonts = [];
[578] Fix | Delete
[579] Fix | Delete
foreach ( pum_get_all_themes() as $theme ) {
[580] Fix | Delete
$google_fonts = array_merge( $google_fonts, pum_get_theme( $theme->ID )->get_google_fonts_used() );
[581] Fix | Delete
}
[582] Fix | Delete
[583] Fix | Delete
if ( ! empty( $google_fonts ) && ! pum_get_option( 'disable_google_font_loading', false ) ) {
[584] Fix | Delete
$link = '//fonts.googleapis.com/css?family=';
[585] Fix | Delete
foreach ( $google_fonts as $font_family => $variants ) {
[586] Fix | Delete
if ( '//fonts.googleapis.com/css?family=' !== $link ) {
[587] Fix | Delete
$link .= '|';
[588] Fix | Delete
}
[589] Fix | Delete
$link .= $font_family;
[590] Fix | Delete
if ( is_array( $variants ) ) {
[591] Fix | Delete
if ( implode( ',', $variants ) !== '' ) {
[592] Fix | Delete
$link .= ':';
[593] Fix | Delete
$link .= trim( implode( ',', $variants ), ':' );
[594] Fix | Delete
}
[595] Fix | Delete
}
[596] Fix | Delete
}
[597] Fix | Delete
[598] Fix | Delete
$imports = "/* Popup Google Fonts */\r\n@import url('$link');\r\n\r\n" . $imports;
[599] Fix | Delete
}
[600] Fix | Delete
[601] Fix | Delete
$imports = apply_filters( 'pum_generate_font_imports', $imports );
[602] Fix | Delete
[603] Fix | Delete
return $imports;
[604] Fix | Delete
}
[605] Fix | Delete
[606] Fix | Delete
/**
[607] Fix | Delete
* Generate Popup Theme Styles
[608] Fix | Delete
*
[609] Fix | Delete
* @return mixed|string
[610] Fix | Delete
*/
[611] Fix | Delete
public static function generate_popup_theme_styles() {
[612] Fix | Delete
$styles = '';
[613] Fix | Delete
[614] Fix | Delete
$themes = pum_get_all_themes();
[615] Fix | Delete
[616] Fix | Delete
foreach ( $themes as $theme ) {
[617] Fix | Delete
$theme_styles = pum_get_rendered_theme_styles( $theme->ID );
[618] Fix | Delete
[619] Fix | Delete
if ( '' !== $theme_styles ) {
[620] Fix | Delete
$styles .= '/* Popup Theme ' . $theme->ID . ': ' . $theme->post_title . " */\r\n";
[621] Fix | Delete
$styles .= $theme_styles . "\r\n";
[622] Fix | Delete
}
[623] Fix | Delete
}
[624] Fix | Delete
[625] Fix | Delete
$styles = apply_filters( 'popmake_theme_styles', $styles );
[626] Fix | Delete
[627] Fix | Delete
$styles = apply_filters( 'pum_generate_popup_theme_styles', $styles );
[628] Fix | Delete
[629] Fix | Delete
return $styles;
[630] Fix | Delete
}
[631] Fix | Delete
[632] Fix | Delete
[633] Fix | Delete
/**
[634] Fix | Delete
* Reset the cache to force regeneration.
[635] Fix | Delete
*/
[636] Fix | Delete
public static function reset_cache() {
[637] Fix | Delete
update_option( 'pum-has-cached-css', false );
[638] Fix | Delete
update_option( 'pum-has-cached-js', false );
[639] Fix | Delete
}
[640] Fix | Delete
[641] Fix | Delete
/**
[642] Fix | Delete
* Adds admin notice if the files are not writeable.
[643] Fix | Delete
*
[644] Fix | Delete
* @param array $alerts The alerts currently in the alert system.
[645] Fix | Delete
* @return array Alerts for the alert system.
[646] Fix | Delete
* @since 1.9.0
[647] Fix | Delete
*/
[648] Fix | Delete
public static function cache_alert( $alerts ) {
[649] Fix | Delete
if ( self::should_not_show_alert() ) {
[650] Fix | Delete
return $alerts;
[651] Fix | Delete
}
[652] Fix | Delete
[653] Fix | Delete
$nonce = wp_create_nonce( 'pum-write-notice-action' );
[654] Fix | Delete
[655] Fix | Delete
$undo_url = add_query_arg( [
[656] Fix | Delete
'pum_writeable_notice_check' => 'undo',
[657] Fix | Delete
'_wpnonce' => $nonce,
[658] Fix | Delete
] );
[659] Fix | Delete
[660] Fix | Delete
$dismiss_url = add_query_arg([
[661] Fix | Delete
'pum_writeable_notice_check' => 'dismiss',
[662] Fix | Delete
'_wpnonce' => $nonce,
[663] Fix | Delete
] );
[664] Fix | Delete
[665] Fix | Delete
ob_start();
[666] Fix | Delete
?>
[667] Fix | Delete
<ul>
[668] Fix | Delete
<li><a href="<?php echo esc_attr( $undo_url ); ?>"><strong><?php esc_html_e( 'Try to create cache again', 'popup-maker' ); ?></strong></a></li>
[669] Fix | Delete
<li><a href="<?php echo esc_attr( $dismiss_url ); ?>" class="pum-dismiss"><?php esc_html_e( 'Keep current method', 'popup-maker' ); ?></a></li>
[670] Fix | Delete
<li><a href="https://docs.wppopupmaker.com/article/521-debugging-filesystem-errors?utm_source=filesystem-error-alert&utm_medium=inline-doclink&utm_campaign=filesystem-error" target="_blank" rel="noreferrer noopener"><?php esc_html_e( 'Learn more', 'popup-maker' ); ?></a></li>
[671] Fix | Delete
</ul>
[672] Fix | Delete
<?php
[673] Fix | Delete
$html = ob_get_clean();
[674] Fix | Delete
$alerts[] = [
[675] Fix | Delete
'code' => 'pum_writeable_notice',
[676] Fix | Delete
'type' => 'warning',
[677] Fix | Delete
'message' => esc_html__( "Popup Maker detected an issue with your file system's ability and is unable to create & save cached assets for your popup styling and settings. This may lead to suboptimal performance. Please check your filesystem and contact your hosting provide to ensure Popup Maker can create and write to cache files.", 'popup-maker' ),
[678] Fix | Delete
'html' => $html,
[679] Fix | Delete
'priority' => 1000,
[680] Fix | Delete
'dismissible' => '2 weeks',
[681] Fix | Delete
'global' => true,
[682] Fix | Delete
];
[683] Fix | Delete
return $alerts;
[684] Fix | Delete
}
[685] Fix | Delete
[686] Fix | Delete
/**
[687] Fix | Delete
* Checks if any options have been clicked from admin notices.
[688] Fix | Delete
*
[689] Fix | Delete
* @since 1.9.0
[690] Fix | Delete
*/
[691] Fix | Delete
public static function admin_notice_check() {
[692] Fix | Delete
if ( isset( $_GET['pum_writeable_notice_check'] ) ) {
[693] Fix | Delete
// phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.ValidatedSanitizedInput.MissingUnslash
[694] Fix | Delete
check_admin_referer( 'pum-write-notice-action' );
[695] Fix | Delete
[696] Fix | Delete
// If either dismiss or try again button is clicked, hide the admin notice.
[697] Fix | Delete
update_option( '_pum_writeable_notice_dismissed', true );
[698] Fix | Delete
if ( 'undo' === $_GET['pum_writeable_notice_check'] ) {
[699] Fix | Delete
// If try again is clicked, remove flag.
[700] Fix | Delete
update_option( 'pum_files_writeable', true );
[701] Fix | Delete
} else {
[702] Fix | Delete
pum_update_option( 'disable_asset_caching', true );
[703] Fix | Delete
}
[704] Fix | Delete
}
[705] Fix | Delete
}
[706] Fix | Delete
[707] Fix | Delete
/**
[708] Fix | Delete
* Whether or not we should show admin notice
[709] Fix | Delete
*
[710] Fix | Delete
* @since 1.9.0
[711] Fix | Delete
* @return bool True if notice should not be shown
[712] Fix | Delete
*/
[713] Fix | Delete
public static function should_not_show_alert() {
[714] Fix | Delete
return true === (bool) get_option( 'pum_files_writeable', true ) || true === (bool) get_option( '_pum_writeable_notice_dismissed', true );
[715] Fix | Delete
}
[716] Fix | Delete
[717] Fix | Delete
/**
[718] Fix | Delete
* Tests whether the file is accessible and returns 200 status code
[719] Fix | Delete
*
[720] Fix | Delete
* @param string $filename Filename of cache file to test.
[721] Fix | Delete
* @return bool True if file exists and is accessible
[722] Fix | Delete
*/
[723] Fix | Delete
private static function is_file_accessible( $filename ) {
[724] Fix | Delete
if ( ! $filename || empty( $filename ) || ! is_string( $filename ) ) {
[725] Fix | Delete
// phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_print_r
[726] Fix | Delete
pum_log_message( 'Cannot check if file is accessible. Filename passed: ' . print_r( $filename, true ) );
[727] Fix | Delete
return false;
[728] Fix | Delete
}
[729] Fix | Delete
$cache_url = PUM_Helpers::get_cache_dir_url();
[730] Fix | Delete
if ( false === $cache_url ) {
[731] Fix | Delete
pum_log_message( 'Cannot access cache file when tested. Cache URL returned false.' );
[732] Fix | Delete
}
[733] Fix | Delete
$protocol = is_ssl() ? 'https:' : 'http:';
[734] Fix | Delete
$file = $protocol . $cache_url . '/' . $filename;
[735] Fix | Delete
$results = wp_remote_request(
[736] Fix | Delete
$file,
[737] Fix | Delete
[
[738] Fix | Delete
'method' => 'HEAD',
[739] Fix | Delete
'sslverify' => false,
[740] Fix | Delete
]
[741] Fix | Delete
);
[742] Fix | Delete
[743] Fix | Delete
// If it returned a WP_Error, let's log its error message.
[744] Fix | Delete
if ( is_wp_error( $results ) ) {
[745] Fix | Delete
$error = $results->get_error_message();
[746] Fix | Delete
pum_log_message( sprintf( 'Cannot access cache file when tested. Tested file: %s Error given: %s', esc_html( $file ), esc_html( $error ) ) );
[747] Fix | Delete
}
[748] Fix | Delete
[749] Fix | Delete
// If it returned valid array...
[750] Fix | Delete
if ( is_array( $results ) && isset( $results['response'] ) ) {
[751] Fix | Delete
$status_code = $results['response']['code'];
[752] Fix | Delete
[753] Fix | Delete
// ... then, check if it's a valid status code. Only if it is a valid 2XX code, will this method return true.
[754] Fix | Delete
if ( false !== $status_code && ( 200 <= $status_code && 300 > $status_code ) ) {
[755] Fix | Delete
return true;
[756] Fix | Delete
} else {
[757] Fix | Delete
pum_log_message( sprintf( 'Cannot access cache file when tested. Status code received was: %s', esc_html( $status_code ) ) );
[758] Fix | Delete
}
[759] Fix | Delete
}
[760] Fix | Delete
return false;
[761] Fix | Delete
}
[762] Fix | Delete
[763] Fix | Delete
/**
[764] Fix | Delete
* Process a change to options conditionally if the user came from a bugged version.
[765] Fix | Delete
*
[766] Fix | Delete
* @param string $upgraded_from The version the user upgraded from.
[767] Fix | Delete
*/
[768] Fix | Delete
public static function maybe_reset_asset_cache_notices( $upgraded_from ) {
[769] Fix | Delete
// If version compoare upgraded from was v1.18.0 exactly delete the notice.
[770] Fix | Delete
if ( '1.18.0' === $upgraded_from ) {
[771] Fix | Delete
update_option( 'pum_files_writeable', true );
[772] Fix | Delete
update_option( '_pum_writeable_notice_dismissed', true );
[773] Fix | Delete
pum_update_option( 'disable_asset_caching', false );
[774] Fix | Delete
}
[775] Fix | Delete
}
[776] Fix | Delete
}
[777] Fix | Delete
[778] Fix | Delete
12
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function