{$section['title']}\n"; do_action("w3tc_do_settings_sections_after_title-{$page}"); if ( $section['callback'] ) call_user_func( $section['callback'], $section ); if ( ! isset( $w3tc_settings_fields ) || !isset( $w3tc_settings_fields[$page] ) || !isset( $w3tc_settings_fields[$page][$section['id']] ) ) continue; do_action("w3tc_do_settings_sections_before_table-{$page}"); echo '
' . __('It appears that activating the %s extension for W3 Total Cache will be helpful for your site. Click here to try it. %s', 'w3-total-cache') . '
', $extension_id) , sprintf(w3_admin_url('admin.php?page=w3tc_extensions#%s'), $extension_id) , $extension_name , sprintf(w3_admin_url('admin.php?page='. $page .'&w3tc_extensions_activate=%s'), $extension_id) , w3_button_hide_note(__('Hide this message', 'w3-total-cache'), 'hide-extension-notification', '', true,'','w3tc_default_hide_note_custom='.$extension_id) ); } /** * Checks if an extension notification is hidden * * @param $extension_id * @return bool */ function w3tc_extension_hidden($extension_id) { $w3_config = w3_instance('W3_ConfigAdmin'); $extensions = $w3_config->get_array('notes.hide_extensions'); return in_array($extension_id, $extensions); } /** * @param $extension * @param W3_Config $w3_config * @return bool */ function w3tc_activate_extension($extension, $w3_config) { $all_extensions = w3_get_extensions($w3_config); $extensions = $w3_config->get_array('extensions.active'); if (!w3_is_extension_active($extension)) { $meta = $all_extensions[$extension]; $extensions[$extension] = $meta['path']; ksort($extensions, SORT_STRING); $w3_config->set('extensions.active', $extensions); try { $w3_config->save(); do_action("w3tc_activate_extension-{$extension}"); return true; } catch (Exception $ex) { } } return false; } /** * @param $extension * @param W3_Config $config * @param bool $dont_save_config * @return bool */ function w3tc_deactivate_extension($extension, $config, $dont_save_config = false) { $extensions = $config->get_array('extensions.active'); if (array_key_exists($extension, $extensions)) { unset($extensions[$extension]); ksort($extensions, SORT_STRING); $config->set('extensions.active', $extensions); try { if (!$dont_save_config) $config->save(); do_action("w3tc_deactivate_extension-{$extension}"); return true; } catch (Exception $ex) {} } return false; } /** * @param string $extension_id * @param bool $valid if site can handle extension * @return bool */ function w3tc_show_extension_notification($extension_id, $valid) { return !w3_is_extension_active($extension_id) && $valid && !w3tc_extension_hidden($extension_id); }