| Server IP : 54.36.91.62 / Your IP : 216.73.216.15 Web Server : Apache System : Linux webm021.cluster127.gra.hosting.ovh.net 6.18.39-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Tue Jul 21 12:03:15 CEST 2026 x86_64 User : uxhactp ( 169076) PHP Version : 7.4.33 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/uxhactp/www/wp-content/plugins/onecom-vcache/onecom-addons/inc/lib/ |
Upload File : |
<?php
/**
* Name: Validator
* Version: 0.2.6
* Copyright: one.com
* Any type of modification/duplication/distribution of this script is strictly prohibited.
*/
// Essential declarations
if (!defined('OC_VALIDATOR_DOMAIN')) {
define('OC_VALIDATOR_DOMAIN', 'validator');
}
if (!defined('OC_DOMAIN_NAME')) {
define('OC_DOMAIN_NAME', isset($_SERVER['ONECOM_DOMAIN_NAME']) ? $_SERVER['ONECOM_DOMAIN_NAME'] : '');
}
if (!defined('OC_WP_API')) {
define('OC_WP_API', empty($_SERVER['ONECOM_WP_ADDONS_API']) ? '' : $_SERVER['ONECOM_WP_ADDONS_API']);
}
// Formal Sonar string repetition fixes
if (!defined('OC_GENERIC_ERR_MSG')) {
define('OC_GENERIC_ERR_MSG', __("Some error occurred, please reload the page and try again.", OC_VALIDATOR_DOMAIN));
}
if (!defined('OC_GENERIC_LEARN_MORE')) {
define('OC_GENERIC_LEARN_MORE', __('Learn more', OC_VALIDATOR_DOMAIN));
}
if (!defined('OC_MAIN_GUIDE_STR')) {
define('OC_MAIN_GUIDE_STR', 'main_guide');
}
if (!defined('OC_DISC_GUIDE_STR')) {
define('OC_DISC_GUIDE_STR', 'discouraged_guide');
}
if (!defined('OC_COOKIE_GUIDE_STR')) {
define('OC_COOKIE_GUIDE_STR', 'cookie_guide');
}
if (!defined('OC_STG_GUIDE_STR')) {
define('OC_STG_GUIDE_STR', 'staging_guide');
}
if (!defined('OC_PRM_PAGE_STR')) {
define('OC_PRM_PAGE_STR', 'premium_page');
}
if (!defined('OC_ERR_STR')) {
define('OC_ERR_STR', 'error');
}
if (!defined('OC_SUCCESS_STR')) {
define('OC_SUCCESS_STR', 'success');
}
if (!defined('OC_THM_STR')) {
define('OC_THM_STR', 'theme');
}
if (!defined('OC_THMS_STR')) {
define('OC_THMS_STR', 'themes');
}
if (!defined('OC_FTR_STR')) {
define('OC_FTR_STR', 'feature');
}
if (!defined('OC_AUTHOR_STR')) {
define('OC_AUTHOR_STR', 'Author');
}
if (!defined('OC_NAME_STR')) {
define('OC_NAME_STR', 'Name');
}
if (!defined('OC_ITM_COUNT_STR')) {
define('OC_ITM_COUNT_STR', 'item_count');
}
if (!defined('OC_PUSH_STATS')) {
define('OC_PUSH_STATS', 'OCPushStats');
}
if (!defined('PREMIUM')) {
define('PREMIUM', 'premium');
}
// Item Identifiers
if (!defined('OC_ID_OCI')) {
define('OC_ID_OCI', 'ONE_CLICK_INSTALL');
}
if (!defined('OC_ID_PRM_THMS')) {
define('OC_ID_PRM_THMS', 'PREMIUM_THEMES');
}
if (!defined('OC_ID_STD_THMS')) {
define('OC_ID_STD_THMS', 'STANDARD_THEMES');
}
if (!defined('ONECOM_WP_CORE_VERSION')) {
global $wp_version;
define('ONECOM_WP_CORE_VERSION', $wp_version);
}
if (!defined('ONECOM_PHP_VERSION')) {
define('ONECOM_PHP_VERSION', phpversion());
}
/* send validation headers with api calls */
add_filter('http_request_args', 'oc_add_http_headers', 10, 2);
/* TOTP lib */
use OTPHP\TOTP;
use ParagonIE\ConstantTime\Base32;
$filepath = __DIR__ . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php';
if (file_exists($filepath)) {
include $filepath;
}
add_action('plugins_loaded', 'oc_validator_load_textdomain');
if (!function_exists('oc_validator_load_textdomain')) {
function oc_validator_load_textdomain()
{
// load english tranlsations [as] if any unsupported language is selected in WP-Admin
if (strpos(get_locale(), 'en_') === 0) {
load_textdomain(OC_VALIDATOR_DOMAIN, dirname(__FILE__) . '/languages/validator-en_US.mo');
} else if ( strpos( get_locale(), 'pt_BR' ) === 0 ) {
load_textdomain( OC_VALIDATOR_DOMAIN, dirname( __FILE__ ) . '/languages/validator-pt_PT.mo' );
} else if ( strpos( get_locale(), 'fi' ) === 0 ) {
load_textdomain( OC_VALIDATOR_DOMAIN, dirname( __FILE__ ) . '/languages/validator-fi_FI.mo' );
} else {
load_plugin_textdomain(OC_VALIDATOR_DOMAIN, false, trailingslashit(dirname(plugin_basename(__FILE__))) . trailingslashit('languages'));
}
}
}
// fallback check for MIDDLEWARE_URL, define it if not already defined
if (!defined('MIDDLEWARE_URL')) {
$api_version = 'v1.0';
if (!empty(OC_WP_API)) {
$ONECOM_WP_ADDONS_API = OC_WP_API;
} elseif (defined('ONECOM_WP_ADDONS_API') && ONECOM_WP_ADDONS_API != '' && ONECOM_WP_ADDONS_API) {
$ONECOM_WP_ADDONS_API = ONECOM_WP_ADDONS_API;
} else {
$ONECOM_WP_ADDONS_API = 'https://wpapi.one.com/';
}
$ONECOM_WP_ADDONS_API = rtrim($ONECOM_WP_ADDONS_API, '/');
define('MIDDLEWARE_URL', $ONECOM_WP_ADDONS_API . '/api/' . $api_version);
}
if (!function_exists('oc_generate_totp')) {
function oc_generate_totp($valid_for = 30, $length = 6)
{
$fileString = '{}';
if (file_exists('/run/domain.conf')) {
$fileString = trim(file_get_contents("/run/domain.conf"));
} else if (file_exists('/run/mail.conf')) {
$fileString = trim(file_get_contents("/run/mail.conf"));
}
$domainInfo = json_decode($fileString);
$hash = 'oc';
if (isset($domainInfo->hash) && $domainInfo->hash) {
$hash = $domainInfo->hash;
}
$mySecret = trim(Base32::encodeUpper($hash));
$otp = TOTP::create($mySecret, $valid_for, 'sha1', $length);
return $otp->now();
}
}
if (!function_exists('oc_validate_domain')) {
function oc_validate_domain($force = false, $domain = null)
{
// check transient
$oc_validate_domain = get_site_transient('oc_validate_domain');
if ( ! empty( $oc_validate_domain ) && ! $force ) {
return $oc_validate_domain;
}
if (!$domain) {
$domain = isset($_SERVER['ONECOM_DOMAIN_NAME']) ? $_SERVER['ONECOM_DOMAIN_NAME'] : false;
}
if (!$domain) {
return [
'data' => null,
'error' => 'Empty domain',
'success' => false,
];
}
$totp = oc_generate_totp();
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => MIDDLEWARE_URL . '/features',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Cache-Control: no-cache",
"X-Onecom-Client-Domain: " . $domain,
"X-TOTP: " . $totp,
"cache-control: no-cache",
),
));
$response = curl_exec($curl);
$response = json_decode($response, true);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
return [
'data' => null,
'error' => __("Some error occurred, please reload the page and try again.", "validator"),
'success' => false,
];
} else {
// save transient for next calls
if (is_blog_installed()) {
set_site_transient('oc_validate_domain', $response, 12 * HOUR_IN_SECONDS);
}
// return latest response
return $response;
}
}
}
add_action('admin_init', 'oc_set_premi_flag');
if (!function_exists('oc_set_premi_flag')) {
function oc_set_premi_flag($force = false)
{
$oc_premi_flag = get_site_transient('oc_premi_flag');
if ((!$oc_premi_flag) || $force) {
$oc_premi_flag = oc_validate_domain($force);
if (isset($oc_premi_flag['data']) && $oc_premi_flag['data']) {
if (is_blog_installed()) {
set_site_transient('oc_premi_flag', $oc_premi_flag['data'], 12 * HOUR_IN_SECONDS);
}
}
}
if (!isset($oc_premi_flag['data'])) {
$oc_premi_flag['data'] = $oc_premi_flag;
}
return $oc_premi_flag;
}
}
// hook onto WP CRON to check transients
add_action('wp_version_check', 'oc_set_premi_flag_cron');
if (!function_exists('oc_set_premi_flag_cron')) {
function oc_set_premi_flag_cron()
{
oc_set_premi_flag(true);
}
}
/**
* Feature mapping
*/
if (!function_exists('oc_pm_features')) {
function oc_pm_features($key, $val)
{
$operations = [
'ins' => OC_ID_OCI,
'stg' => 'STAGING_ENV',
'stheme' => OC_ID_STD_THMS,
'ptheme' => OC_ID_PRM_THMS,
'pcache' => 'PERFORMANCE_CACHE',
'mwp' => 'MWP_ADDON',
];
if (!array_key_exists($key, $operations)) {
return false;
}
return in_array($operations[$key], (array)$val);
}
}
/**
* Function oc_get_logline()
* Function to prepare log data to be sent to WPAPI
*
* @param array $post_data An array of varialbles intercepted from $_POST.
*
* @return string
* @since v0.1.3
*/
if (!function_exists('oc_get_logline')) {
function oc_get_logline($post_data)
{
$is_premium = strip_tags($post_data['isPremium']);
$message = "isPremium:$is_premium";
$state = 'state';
$feature_condition = (isset($post_data[OC_FTR_STR]) && ($post_data[OC_FTR_STR] != ''));
$theme_condition = (isset($post_data[OC_THM_STR]) && ($post_data[OC_THM_STR] != ''));
if (!($feature_condition || $theme_condition)) {
return false;
}
if (isset($post_data[OC_FTR_STR]) && $post_data[OC_FTR_STR] != '') {
$feature = strip_tags($post_data[OC_FTR_STR]);
$message .= ";feature:$feature";
}
if (isset($post_data[$state]) && $post_data[$state] != '') {
$state = filter_var($post_data[$state], FILTER_SANITIZE_NUMBER_INT);
$message .= ";state:$state";
}
if (isset($post_data['featureAction']) && $post_data['featureAction'] != '') {
$feature_action = strip_tags($post_data['featureAction']);
$message .= ";featureAction:$feature_action";
}
if (isset($post_data[OC_THM_STR]) && ($post_data[OC_THM_STR] != '')) {
$theme = strip_tags($post_data[OC_THM_STR]);
$message .= ";theme:$theme";
}
//append the available features at the end
$feature_array = oc_set_premi_flag(true);
$feature_string = implode('|', $feature_array['data']);
$feature_string = rtrim($feature_string, '|');
return $message . ";features_available:$feature_string";
}
}
/**
* Function to handle validation by ajax
*/
add_action('wp_ajax_oc_validate_action', 'oc_validate_action_cb');
if (!function_exists('oc_validate_action_cb')) {
function oc_validate_action_cb()
{
$data = isset($_POST['operation']) ? strip_tags($_POST['operation']) : '';
$action_type = isset($_POST['actionType']) ? strip_tags($_POST['actionType']) : '';
$result = oc_set_premi_flag(true);
$status = 'status';
$data_str = 'data';
$referrer = '';
if (isset($_POST['referrer'])) {
$referrer = strpos($_POST['referrer'], 'step=theme') ? 'install_wizard' : 'themes_page';
}
if ($result[$data_str] == null && $result[OC_SUCCESS_STR] != 1) {
$response = [
$status => '',
'msg' => OC_GENERIC_ERR_MSG . ' [' . $result[OC_ERR_STR] . ']'
];
} else if (oc_pm_features($data, $result[$data_str]) || in_array('MWP_ADDON', $result[$data_str])) {
$response = [
$status => OC_SUCCESS_STR,
];
} else {
$response = [
$status => 'failed'
];
}
// push stats
if ($action_type != '' && class_exists(OC_PUSH_STATS)) {
$premium = (empty($_POST["isPremium"]) || $_POST["isPremium"] !== 'true') ? 0 : 1;
$slug = isset($_POST['theme']) ? $_POST['theme'] : '';
if ($action_type === 'wppremium_install_theme' && isset($_POST['theme'])) {
(class_exists(OC_PUSH_STATS) ? \OCPushStats::push_stats_event_themes_and_plugins('install', 'theme', "$slug", $referrer, array(PREMIUM => "$premium")) : '');
} elseif ($action_type === 'wppremium_preview_theme' && isset($_POST['theme'])) {
(class_exists(OC_PUSH_STATS) ? \OCPushStats::push_stats_event_themes_and_plugins('preview', 'theme', "$slug", $referrer, array(PREMIUM => "$premium")) : '');
} elseif ($action_type === 'wppremium_click_upgrade' && $_POST['feature'] === 'theme') {
(class_exists(OC_PUSH_STATS) ? \OCPushStats::push_stats_event_themes_and_plugins('click_upgrade', 'theme', $_POST['theme'], $referrer, array(PREMIUM => "$premium")) : '');
} elseif ($action_type === 'wppremium_close_upgrade' && $_POST['feature'] === 'theme') {
(class_exists(OC_PUSH_STATS) ? \OCPushStats::push_stats_event_themes_and_plugins('close_upgrade', 'theme', $_POST['theme'], $referrer, array(PREMIUM => "$premium")) : '');
}
}
echo wp_send_json($response);
wp_die();
}
}
/* validator scripts */
add_action('admin_print_scripts', function () {
?>
<script>
/**
* Top Notifier
*/
function oc_alert(msg = '', type = '<?php echo OC_ERR_STR; ?>', time = 5000) {
jQuery('.onecom-notifier').html(msg).attr('type', type).addClass('show');
setTimeout(function () {
jQuery('.onecom-notifier').removeClass('show');
jQuery('.loading-overlay.fullscreen-loader').removeClass('show');
}, time);
}
</script>
<script type="text/javascript">
function oc_validate_action(action) {
return jQuery.ajax({
url: ajaxurl,
type: "POST",
dataType: "JSON",
data: {
action: 'oc_validate_action',
operation: action
},
error: function (xhr, textStatus, errorThrown) {
oc_alert("<?php echo htmlentities(OC_GENERIC_ERR_MSG); ?>", OC_ERR_STR, 5000)
}
});
}
</script>
<script>
/**
* Function oc_trigger_log()
* Function to trigger log after a feature is activated successfully.
* This checks the domain's eligibility for a feature redundantly and this can be improved.
* @param: Object data - an object consisting of following keys
* actionType, isPremium, feature, featureAction, state and theme
*/
function oc_trigger_log(logData) {
jQuery.ajax({
url: ajaxurl,
type: "POST",
dataType: "JSON",
data: {
action: 'oc_validate_action',
actionType: logData.actionType,
isPremium: logData.isPremium,
feature: logData.feature,
theme: logData.theme || null,
featureAction: logData.featureAction || null,
referrer: logData.referrer || null,
state: logData.state || null
},
error: function (xhr, textStatus, errorThrown) {
console.log("Some error occured during logging!");
}
});
}
</script>
<?php
}, 9999);
/**
* function to add Modal HTML in wp-admin footer
*/
add_action('wp_ajax_show_plugin_dependent_popup', 'onecom_upgrade_modal');
add_action('admin_footer', 'onecom_upgrade_modal');
if (!function_exists('onecom_upgrade_modal')) {
function onecom_upgrade_modal()
{
$type = null;
$current_screen = get_current_screen();
$thm_screens = array(OC_THMS_STR, 'one-com_page_onecom-wp-themes');
if (in_array($current_screen->base, $thm_screens)) {
$type = OC_THMS_STR;
}
if(isset($_POST['action']) && $_POST['action'] === 'show_plugin_dependent_popup') {
$dependent_plugin = prepare_dependent_plugin_popup($_POST['popupContent']);
wp_send_json(array('success' => true,"data" => $dependent_plugin));
} else { ?>
<div id="oc_um_overlay" style="display:none;">
<div id="oc_um_wrapper">
<div class="oc-bg-white">
<div id="oc_um_head">
<h5>
<?php echo __('Make your WordPress more powerful', OC_VALIDATOR_DOMAIN); ?>
</h5>
</div>
<div id="oc_um_body">
<?php
echo __('Spend less time worrying about your site and more time growing your business with one.com Managed WordPress.', OC_VALIDATOR_DOMAIN);
echo '<ul>' . '<li><span>' . __('Quick fix or ignore recommendations', OC_VALIDATOR_DOMAIN) . '</span></li>';
echo '<li><span>' . __('Get better performance with Performance Cache and CDN', OC_VALIDATOR_DOMAIN) . '</span></li>';
echo '<li><span>' . __('Get notified about security with Vulnerability Monitoring', OC_VALIDATOR_DOMAIN) . '</span></li>';
echo '<li><span>' . __('Get helpful tips with Advanced Error Page', OC_VALIDATOR_DOMAIN) . '</span></li>';
echo '<li><span>' . __('Get access to our Premium themes', OC_VALIDATOR_DOMAIN) . '</span></li>';
echo '<li><span>' . __('Increase your authentication security', OC_VALIDATOR_DOMAIN) . '</span></li>';
echo '<li><span>' . __('Host on our WordPress servers built for speed', OC_VALIDATOR_DOMAIN) . '</span></li>';
echo '</ul>';
?>
</div>
<div id="oc_um_footer">
<a href="<?php echo oc_upgrade_link('upgrade_modal'); ?>"
target="_blank"
class="oc_um_btn oc_up_btn"><?php echo __('Free upgrade', OC_VALIDATOR_DOMAIN); ?></a>
<a href="javascript:;"
onclick="jQuery('#oc_um_overlay').hide();jQuery('.loading-overlay.fullscreen-loader').removeClass('show');"
class="oc_um_btn oc_cancel_btn"><?php echo __('Cancel', OC_VALIDATOR_DOMAIN); ?></a>
</div>
</div>
</div>
</div>
<?php } ?>
<style>
#oc_um_overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.2);
z-index: 99999;
}
.oc-bg-white {
background: #fff;
padding: 40px;
width: calc(100% - 80px);
}
#oc_phased-in {
background: #fff;
margin: 8px 0 0 0;
padding: 24px 40px;
display: flex;
align-items: center;
}
#oc_um_body ul {
font-family: "Open Sans", sans-serif;
font-size: 16px;
font-style: normal;
font-weight: 600;
line-height: 24px;
letter-spacing: 0px;
}
#oc_um_body ul li {
margin: 20px 0;
}
#oc_um_body .extra-footerspace {
height: 15px;
}
#oc_um_body ul li > span {
display:table-cell;
}
#oc_phased-in p {
font-family: "Open Sans", sans-serif;
font-size: 14px;
font-style: normal;
font-weight: 400;
line-height: 22px;
letter-spacing: 0px;
margin: 0 0 0 24px;
}
#oc_um_wrapper {
margin: 0;
position: fixed;
top: 50%;
left: 50%;
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
-webkit-transform: translate(-50%, -50%);
min-width: 504px;
min-height: 246px;
color: #3C3C3C;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
box-shadow: 0 0 12px rgba(0, 0, 0, .4);
display: flex;
justify-content: space-between;
align-items: flex-start;
flex-direction: column;
max-width:578px;
width:100%;
}
.oc_notice {
border: 1px solid #0078C8;
padding: 0 12px;
padding-left: 32px;
padding-right: 32px;
background: #D9EBF7;
margin: 40px 0 0 0;
display: flex;
align-items: center;
justify-content: flex-end;
}
.oc_notice div:first-child {
margin-right: auto;
}
.oc_notice div {
margin: 12px 0;
padding: 11px 0;
}
/* new button design */
div#oc_um_footer a {
text-decoration: none;
display: inline-block;
}
div#oc_um_footer a.cancel-plugin-dependent,
div#oc_um_footer a.upgrade-plugin-dependent
{
font-style: normal;
font-weight: 500;
font-size: 14px;
line-height: 22px;
letter-spacing: 0.25px;
padding: 12px 24px;
border-radius: 100px;
font-family: "Open Sans", sans-serif;
}
div#oc_um_footer a.cancel-plugin-dependent {
color: #3C3C3C;
border: 1px solid #BBBBBB;
margin-right: 24px;
}
div#oc_um_footer a.upgrade-plugin-dependent {
background: #0078C8;
color: #FFFFFF;
}
/* new button design end */
@media (max-width: 960px) {
.oc_notice {
padding: 32px;
display: block;
}
.oc_notice div {
margin: 0;
padding: 0;
}
.oc_notice div .inline_icon,
.oc_notice span {
display: block !important;
margin-bottom: 32px;
}
}
@media (max-width: 767px) {
#oc_um_footer{
text-align:center;
}
#oc_um_footer .oc_up_btn {
margin-bottom: 15px;
}
#oc_um_footer .oc_cancel_btn {
margin: 0;
display: block;
}
/* new button design */
div#oc_um_footer a.upgrade-plugin-dependent {
margin-top: 24px;
}
div#oc_um_footer a.cancel-plugin-dependent {
margin-right: 0 !important;
}
/* new button design end */
}
@media (max-width: 600px) {
#oc_um_wrapper {
max-width: 75%;
min-width: 75%;
max-height: 80%;
overflow-y: scroll;
}
#oc_um_body, #oc_um_body p {
margin: 25px 0;
}
}
#oc_um_wrapper h5 {
font-family: "Open Sans", sans-serif;
font-size: 24px;
font-style: normal;
font-weight: 600;
line-height: 32px;
letter-spacing: 0px;
text-align: left;
margin: 0 0 12px 0;
}
#oc_um_head {
min-height: 56px;
}
#oc_um_footer {
margin: 36px 0 0 0;
}
.oc_um_btn,
.oc_um_btn:hover {
font-family: "Open Sans", sans-serif;
font-style: normal;
font-weight: 600;
font-size: 16px;
line-height: 24px;
color: #8A8989;
background: #fff;
align-items: center;
display: inline-flex;
border-radius: 0;
cursor: pointer;
text-decoration: none;
}
.oc_up_btn,
.oc_up_btn:hover {
background: #0078C8;
border-color: #0078C8;
color: #fff;
padding: 8px 32px;
font-family: "Open Sans", sans-serif;
font-size: 16px;
font-style: normal;
font-weight: 600;
line-height: 24px;
letter-spacing: 0em;
text-align: center;
border-radius: 100px;
}
.oc_cancel_btn {
margin: 0 0 0 46px;
}
.oc_up_btn:focus, .oc_up_btn:active, .oc_up_btn:visited {
color: #fff;
}
#oc_um_body, #oc_um_body p {
font-family: "Open Sans", sans-serif;
font-size: 16px;
font-style: normal;
font-weight: 400;
line-height: 24px;
letter-spacing: 0px;
text-align: left;
}
#oc_um_body ul li:before {
content: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTMiIHZpZXdCb3g9IjAgMCAxNiAxMyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxwYXRoIGQ9Ik0wLjc1IDUuNzVMNS43NSAxMC43NUwxNS4yNSAxLjI1IiBzdHJva2U9IiM3NkI4MkEiIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4K);
display: table-cell;
padding-right: 20px;
}
</style>
<script>
jQuery(document).ready(function(){
if(jQuery('#oc_um_overlay').length) {
var oldpopup = jQuery('#oc_um_overlay').html();
jQuery(document).on('click','#oc_um_footer a.oc_um_btn.oc_cancel_btn',function () {
jQuery('#oc_um_overlay').html(oldpopup);
});
}
});
</script>
<?php
}
}
/**
* prepare dependent plugin popup
*/
if(!function_exists('prepare_dependent_plugin_popup')){
function prepare_dependent_plugin_popup($data){
ob_start();
?>
<div id="oc_um_wrapper">
<div class="oc-bg-white">
<div id="oc_um_head">
<h5>
<?php echo nl2br(stripslashes(__($data['title'], OC_VALIDATOR_DOMAIN))); ?>
</h5>
</div>
<div id="oc_um_body">
<?php
echo nl2br(stripslashes(__($data['top-desc'], OC_VALIDATOR_DOMAIN)));
echo '<ul>';
foreach($data['bodylist'] as $key => $liVal) {
echo '<li><span>' . nl2br(stripslashes(__($liVal, OC_VALIDATOR_DOMAIN))) . '</span></li>';
}
echo '</ul>';
echo '<div class="extra-footerspace"></div>';
echo nl2br(stripslashes(__($data['footer-desc'], OC_VALIDATOR_DOMAIN)));
?>
</div>
<div id="oc_um_footer">
<a href="javascript:;"
onclick="jQuery('#oc_um_overlay').hide();jQuery('.loading-overlay.fullscreen-loader').removeClass('show');"
class="cancel-plugin-dependent"><?php echo __('Cancel', OC_VALIDATOR_DOMAIN); ?></a>
<a href="<?php echo oc_upgrade_link('upgrade_modal'); ?>"
target="_blank"
class="upgrade-plugin-dependent"><?php echo __('Try Managed WordPress', OC_VALIDATOR_DOMAIN); ?></a>
</div>
</div>
</div>
<?php
return ob_get_clean();
}
}
/**
* Function to show premium Ribbon on theme thumbnails.
**/
add_filter('onecom_premium_theme_badge', 'oc_theme_badge', 10);
if (!function_exists('oc_theme_badge')) {
function oc_theme_badge($tag)
{
if (!(is_array($tag) && in_array(PREMIUM, $tag))) {
return;
}
echo '<span class="badge_bg" style="position: absolute; top: 0; right: 0; padding: 4px 10px; background-color: #fff; color: #76B82A; font-size: 16px; line-height: 24px; z-index: 100; font-weight: 600;">' . __("Premium", OC_VALIDATOR_DOMAIN) . '</span>';
}
}
/**
* Function to show inline premium badge
*/
$oc_inline_badge_fn = 'oc_inline_badge';
add_filter('onecom_premium_inline_badge', $oc_inline_badge_fn, 10, 3); // attach with MM
add_filter('oc_preview_install', $oc_inline_badge_fn, 10, 3); // attach with preview install
add_filter('oc_staging_button_create', $oc_inline_badge_fn, 10, 3); // attach with staging create
add_filter('oc_staging_button_delete', $oc_inline_badge_fn, 10, 3); // attach with staging delete
if (!function_exists($oc_inline_badge_fn)) {
function oc_inline_badge($html, $type = '', $feature = '')
{
$features = (array)oc_set_premi_flag();
// Check if Premium features
if (isset($features['data'])) {
$features = $features['data'];
}
if (oc_pm_features($feature, $features) || in_array('MWP_ADDON', $features)) {
$badge = '<span class="inline_badge" style="display: inline-flex;height: 28px;vertical-align: middle;margin-left: 20px;align-items: center;color: #76a338;font-size: 14px;-webkit-font-smoothing: antialiased;"><svg style="width: 16px;height: 16px;pointer-events: none;margin-right:6px;"><use xlink:href="#premium_checkmark_91c2f8cf40d052f90c7b36218d17f875"><svg viewBox="0 0 13 13" id="premium_checkmark_91c2f8cf40d052f90c7b36218d17f875"><path d="M5.815 7.383L8.95 4.271l1.06 1.06-3.255 3.232-.953.953L3.354 7.01l1.06-1.06 1.4 1.433zM6.5 12.5a6 6 0 1 1 0-12 6 6 0 0 1 0 12zm0-1a5 5 0 1 0 0-10 5 5 0 0 0 0 10z" fill="#76a338"></path></svg></use></svg> Premium</span>';
} else {
if ($type == '') {
$type = __("This is a Premium Theme", OC_VALIDATOR_DOMAIN);
}
$badge = '<span class="inline_badge" style="display: inline-flex; height: 28px; vertical-align: middle; margin-left: 20px; align-items: center;"><em class="inline_icon" style="background:url(\'data:image/svg+xml;base64,PHN2ZyBzdHlsZT0iZmlsbDojOTUyNjVFOyIgd2lkdGg9IjkiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCA5IDE0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xLjQ5IDBoNi4wMTdsLTIgNC44NzNMOSA0Ljg2NSAyLjE0MiAxNGwxLjYzLTYuNzIzTDAgNy4yNzR6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=\');height: 13.5px;display: inline-block;vertical-align: middle;background-repeat: no-repeat;width: 9px;"></em><span class="inline_badge_text" style="-webkit-font-smoothing: antialiased;margin-left: 10px; opacity: 0.9;color: #333;font-family: Open Sans;font-size: 13px;line-height: 18px;">' . $type . '</span> <a class="inline_badge_link" target="_blank" style="border-bottom:0;margin-left: 5px;color: #95265e;font-family: Open Sans;-webkit-font-smoothing: antialiased;font-size: 13px;font-weight: 600;line-height: 18px;cursor: pointer;text-decoration:none;" href="' . oc_upgrade_link('inline_badge') . '">' . __("Learn more", OC_VALIDATOR_DOMAIN) . '</a></span>';
}
return $html . $badge;
}
}
/**
* Function oc_val_exclude_themes
* Remove ILO app theme from Theme listing in plugin section
*
* @param array $themes , an array of onecom themes
* @param bool $exclude_themes , weather or not to exclude ilo theme?
*
* @return array
*/
if (!function_exists('oc_val_exclude_themes')) {
function oc_val_exclude_themes($themes, $exclude_themes)
{
if (!$exclude_themes || !is_array($themes)) {
return $themes;
}
foreach ($themes as $theme_item) {
if (isset($theme_item->collection)) {
foreach ($theme_item->collection as $key => $theme) {
if (isset($theme->slug) && ($theme->slug === 'onecom-ilotheme')) {
unset($theme_item->collection[$key]);
}
}
}
}
return $themes;
}
}
/**
* Function to query update
**/
if (!function_exists('onecom_query_check')) {
function onecom_query_check($url, $page = null)
{
if ($page != null || $page != 1 || $page != "1") {
$url = add_query_arg(
array(
'page' => $page,
), $url
);
}
return add_query_arg(
array(
'wp' => ONECOM_WP_CORE_VERSION,
'php' => ONECOM_PHP_VERSION,
OC_ITM_COUNT_STR => 1000
), $url
);
}
}
/**
* Fetch one.com themes
*/
if (!function_exists('onecom_fetch_themes')) {
function onecom_fetch_themes($page = 1, $exclude_ilotheme = false)
{
$themes = array();
$transientName = 'onecom_themes';
$themes = (array)get_site_transient($transientName);
/* Note- simple switch over from previous data to new data structure */
if (!isset($themes['total']) && !empty($themes)) {
delete_site_transient($transientName);
$themes = (array)get_site_transient($transientName);
}
// If requested page already exists in transient, return
if (!empty($themes) && isset($themes[OC_ITM_COUNT_STR]) && $themes[OC_ITM_COUNT_STR] >= 1000) {
if (array_key_exists($page, $themes)) { // page exists in current themes
$themes = oc_val_exclude_themes($themes, $exclude_ilotheme);
return $themes[$page];
}
}
$fetch_themes_url = MIDDLEWARE_URL . '/themes';
$fetch_themes_url = onecom_query_check($fetch_themes_url, $page);
global $wp_version;
$args = array(
'timeout' => 5,
'httpversion' => '1.0',
'user-agent' => 'WordPress/' . $wp_version . '; ' . home_url(),
'body' => null,
'compress' => false,
'decompress' => true,
'sslverify' => true,
'stream' => false,
);
$response = wp_remote_get($fetch_themes_url, $args);
if (is_wp_error($response)) {
if (isset($response->errors['http_request_failed'])) {
$errorMessage = __('Connection timed out', OC_VALIDATOR_DOMAIN);
} else {
$errorMessage = $response->get_error_message();
}
} else {
if (wp_remote_retrieve_response_code($response) != 200) {
$errorMessage = '(' . wp_remote_retrieve_response_code($response) . ') ' . wp_remote_retrieve_response_message($response);
} else {
$body = wp_remote_retrieve_body($response);
$body = json_decode($body);
if (!empty($body) && $body->success) {
$themes[OC_ITM_COUNT_STR] = $body->data->item_count;
$themes['total'] = $body->data->total;
$themes[$body->data->current_page] = (object)array();
$themes[$body->data->current_page]->collection = $body->data->collection;
$themes[$body->data->current_page]->page_number = $body->data->current_page;
} elseif (!$body->success) {
if ($body->error == 'RESOURCE NOT FOUND') {
$try_again_url = add_query_arg(
array(
'request' => OC_THMS_STR,
),
''
);
$try_again_url = wp_nonce_url($try_again_url, '_wpnonce');
$errorMessage = __('Sorry, no compatible themes found for your version of WordPress and PHP.', OC_VALIDATOR_DOMAIN) . ' <a href="' . $try_again_url . '">' . __('Try again', OC_VALIDATOR_DOMAIN) . '</a>';
} else {
$errorMessage = $body->error;
}
}
}
$themes = oc_val_exclude_themes($themes, $exclude_ilotheme);
if (is_blog_installed()) {
set_site_transient($transientName, $themes, 3 * HOUR_IN_SECONDS);
}
}
if (empty($themes) || !isset($themes[$page])) {
return new WP_Error('message', $errorMessage);
} else {
return $themes[$page];
}
}
}
/**
* Get premium themes names
*/
if (!function_exists('onecom_is_premium_theme')) {
function onecom_is_premium_theme($name = null)
{
$themes = onecom_fetch_themes();
$themes = (isset($themes->collection) && !empty($themes->collection)) ? $themes->collection : array();
$themes = array_reverse(array_reverse($themes));
$premium_themes = [];
foreach ($themes as $theme) {
if (in_array(PREMIUM, (array)$theme->tags)) {
$premium_themes[] = $theme->name;
}
}
if ($name == null) {
return $premium_themes;
}
if (in_array($name, $premium_themes)) {
return true;
}
return false;
}
}
/**
* Check if theme is to be activated
*/
if (!function_exists('oc_check_theme_eligibility')) {
function oc_check_theme_eligibility($features, $stylesheet = '')
{
// exit if it is not a one.com theme
$theme = wp_get_theme($stylesheet);
if ('one.com' !== strtolower($theme->display(OC_AUTHOR_STR, false))) {
return true;
}
// exit if premium package
if (in_array(OC_ID_PRM_THMS, $features)) {
return true;
}
// check if non-premium WP package & trying to use STANDARD THEME
if (
(in_array(OC_ID_OCI, $features) || in_array(OC_ID_STD_THMS, $features))
&& !onecom_is_premium_theme($theme->display(OC_AUTHOR_STR, false))
) {
return true;
}
return false;
}
}
// Show notice for a non-premium WP package
if (!function_exists('onecom_premium_theme_admin_notice')) {
function onecom_premium_theme_admin_notice($html = '')
{
global $current_screen;
// only show banner on the onecom plugins allowed screens
$allowed_screens = array(
'_page_onecom-wp-plugins',
'admin_page_onecom-wp-recommended-plugins',
'admin_page_onecom-wp-discouraged-plugins'
);
if ( isset( $current_screen->id ) && ! in_array( $current_screen->id, $allowed_screens ) ) {
return false;
}
$badge = '<div class="oc_notice"><div><em class="inline_icon" style="background:url(\'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTAuNSA0Ny41VjYuNUg0MS41VjQ3LjVIMC41WiIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzNDM0MzQyIgc3Ryb2tlLW1pdGVybGltaXQ9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InNxdWFyZSIvPgo8cGF0aCBkPSJNMTEuNzcyNiAxMy44QzEyLjQzMzQgMTMuOCAxMi45NjkgMTMuMjYyOCAxMi45NjkgMTIuNkMxMi45NjkgMTEuOTM3MyAxMi40MzM0IDExLjQgMTEuNzcyNiAxMS40QzExLjExMTggMTEuNCAxMC41NzYyIDExLjkzNzMgMTAuNTc2MiAxMi42QzEwLjU3NjIgMTMuMjYyOCAxMS4xMTE4IDEzLjggMTEuNzcyNiAxMy44WiIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzNDM0MzQyIgc3Ryb2tlLW1pdGVybGltaXQ9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InNxdWFyZSIvPgo8cGF0aCBkPSJNNi45ODIwNyAxMy44QzcuNjQyODQgMTMuOCA4LjE3ODUgMTMuMjYyOCA4LjE3ODUgMTIuNkM4LjE3ODUgMTEuOTM3MyA3LjY0Mjg0IDExLjQgNi45ODIwNyAxMS40QzYuMzIxMyAxMS40IDUuNzg1NjQgMTEuOTM3MyA1Ljc4NTY0IDEyLjZDNS43ODU2NCAxMy4yNjI4IDYuMzIxMyAxMy44IDYuOTgyMDcgMTMuOFoiIGZpbGw9IndoaXRlIiBzdHJva2U9IiMzQzNDM0MiIHN0cm9rZS1taXRlcmxpbWl0PSIxLjUiIHN0cm9rZS1saW5lY2FwPSJzcXVhcmUiLz4KPHBhdGggZD0iTTUuNSA0MC41QzUuNSAzOS4zOTU0IDYuMzk1NDMgMzguNSA3LjUgMzguNUgzNC41QzM1LjYwNDYgMzguNSAzNi41IDM5LjM5NTQgMzYuNSA0MC41QzM2LjUgNDEuNjA0NiAzNS42MDQ2IDQyLjUgMzQuNSA0Mi41SDcuNUM2LjM5NTQzIDQyLjUgNS41IDQxLjYwNDYgNS41IDQwLjVaIiBmaWxsPSIjRkZDMzgyIiBzdHJva2U9IiMzQzNDM0MiIHN0cm9rZS1taXRlcmxpbWl0PSIxLjUiIHN0cm9rZS1saW5lY2FwPSJzcXVhcmUiLz4KPHBhdGggZD0iTTUuNSAzNC41VjE4LjVIMzYuNVYzNC41SDUuNVoiIGZpbGw9IiNFREVERUQiIHN0cm9rZT0iIzNDM0MzQyIgc3Ryb2tlLW1pdGVybGltaXQ9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InNxdWFyZSIvPgo8cGF0aCBkPSJNMjEgMjEuNzVWMzEuMjUiIHN0cm9rZT0iIzNDM0MzQyIgc3Ryb2tlLW1pdGVybGltaXQ9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InNxdWFyZSIvPgo8cGF0aCBkPSJNMjUuNDI4NiAyNi41SDE2IiBzdHJva2U9IiMzQzNDM0MiIHN0cm9rZS1taXRlcmxpbWl0PSIxLjUiIHN0cm9rZS1saW5lY2FwPSJzcXVhcmUiLz4KPGNpcmNsZSBjeD0iMzQuNSIgY3k9IjEzLjUiIHI9IjEzIiBmaWxsPSIjNzZCODJBIiBzdHJva2U9IiMzQzNDM0MiIHN0cm9rZS1taXRlcmxpbWl0PSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8bWFzayBpZD0ibWFzazAiIG1hc2stdHlwZT0iYWxwaGEiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjIxIiB5PSIwIiB3aWR0aD0iMjciIGhlaWdodD0iMjciPgo8Y2lyY2xlIGN4PSIzNC41IiBjeT0iMTMuNSIgcj0iMTMiIGZpbGw9IiNGRkMzODIiIHN0cm9rZT0iIzNDM0MzQyIgc3Ryb2tlLW1pdGVybGltaXQ9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjwvbWFzaz4KPGcgbWFzaz0idXJsKCNtYXNrMCkiPgo8cGF0aCBkPSJNNDUuODUwOCA2LjkwMzY3TDQ2LjA2MTkgNi4yNUg0NS4zNzVINDIuNjExSDQyLjIzOTNMNDIuMTMyMiA2LjYwNTk3TDM5LjE2NTEgMTYuNDY5NkwzNi4yMzE1IDYuNjA3NDVMMzYuMTI1MiA2LjI1SDM1Ljc1MjNIMzMuNDQwNEgzMy4wNzA0TDMyLjk2MjIgNi42MDM3NEwyOS45NjI3IDE2LjQwOThMMjcuMDgwNiA2LjYwODk0TDI2Ljk3NTEgNi4yNUgyNi42MDA5SDIzLjYyNUgyMi45MzgxTDIzLjE0OTIgNi45MDM2N0wyNy45OTM5IDIxLjkwMzdMMjguMTA1OCAyMi4yNUgyOC40Njk3SDMxLjE0NzdIMzEuNTE3OEwzMS42MjU5IDIxLjg5NjFMMzQuNTM0NCAxMi4zNzQ5TDM3LjM5MjcgMjEuODkzOEwzNy40OTk2IDIyLjI1SDM3Ljg3MTZINDAuNTMwM0g0MC44OTQyTDQxLjAwNjEgMjEuOTAzN0w0NS44NTA4IDYuOTAzNjdaIiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSIjM0MzQzNDIi8+CjwvZz4KPC9zdmc+Cg==\');height: 48px;display: inline-block;vertical-align: middle;background-repeat: no-repeat;width: 48px; margin-right: 16px;"></em><span style="font-size: 16px; line-height: 24px;">' . sprintf(__('Make your website even more powerful with %sManaged WordPress%s', OC_VALIDATOR_DOMAIN), '<strong>', '</strong>') . '</div><div><a class="inline_badge_link oc_um_btn oc_up_btn" style="font-size: 14px; padding: 8px 30px;" href="' . oc_upgrade_link('top_banner') . '" target="_blank" class="oc_num_btn oc_up_bt" >' . OC_GENERIC_LEARN_MORE . '</a></div></div>';
if ($html != '') {
return $html . $badge;
}
echo $badge;
}
}
// Admin one.com notice css
if (!function_exists('onecom_premium_error_activation_style')) {
function onecom_premium_error_activation_style()
{
echo '<style>span.inline_badge{margin-left: 0px !important;height: 17px !important;}.notice:not(.oc_notice){display:none !important;}</style>';
}
}
/**
* Validate premium theme activation
*/
add_action('after_switch_theme', 'onecom_premium_theme_check', 10, 2);
if (!function_exists('onecom_premium_theme_check')) {
function onecom_premium_theme_check($oldtheme_name, $oldtheme)
{
// just using the variable to reduce sonar warning
$oldtheme_name;
// exit if it is not a one.com theme
$theme = wp_get_theme();
if ('one.com' !== strtolower($theme->display(OC_AUTHOR_STR, false))) {
return true;
}
// exit if premium package
$features = (array)oc_set_premi_flag(true)['data'];
if (in_array(OC_ID_PRM_THMS, $features) || in_array('MWP_ADDON', $features)) {
return true;
}
// check if non-premium WP package & trying to use STANDARD THEME
if (
(in_array(OC_ID_OCI, $features) || in_array(OC_ID_STD_THMS, $features)) &&
!onecom_is_premium_theme($theme->display(OC_NAME_STR, false))
) {
return true;
}
// Show notice for a non-WP package
add_action('admin_notices', 'onecom_premium_theme_admin_notice', 2);
// Custom styling for default admin notice.
add_action('admin_head', 'onecom_premium_error_activation_style');
// Switch back to previous theme.
switch_theme($oldtheme->stylesheet);
return true;
}
}
/**
* Add headers to the provided object
* This function intends to add domain validation headers in outgoing requests
*/
if (!function_exists('oc_add_http_headers')) {
function oc_add_http_headers($data, $url)
{
if (strpos($url, 'wpapi') === false || strpos($url, '.one.com') === false) {
return $data;
}
$totp = oc_generate_totp();
$domain = !empty(OC_DOMAIN_NAME) ? OC_DOMAIN_NAME : 'localhost';
$data['headers']['X-Onecom-Client-Domain'] = $domain;
$data['headers']['X-TOTP'] = $totp;
$data['headers']['X-ONECOM-CLIENT-IP'] = onecom_get_client_ip_env();
return $data;
}
}
/**
* Function for checking the theme before activating/enabling it.
*/
add_action('load-themes.php', 'oc_check_theme_before_switch');
if (!function_exists('oc_check_theme_before_switch')) {
function oc_check_theme_before_switch()
{
// Exit if not a GET request
if (!isset($_GET) || empty($_GET)) {
return;
}
// return if no action
if (!isset($_GET['action'])) {
return;
}
if (!(isset($_GET['enable'])) && !(isset($_GET[OC_THM_STR]) || isset($_GET['stylesheet']))) {
return;
}
// Exit for all these types of requests
if (defined('XMLRPC_REQUEST') || defined('DOING_AJAX') || defined('IFRAME_REQUEST') || wp_is_json_request()) {
return;
}
// get current screen
$current_page = get_current_screen()->base;
// exit if not on themes page
if (!(isset($_GET) && !empty($_GET) && ($current_page == OC_THMS_STR || $current_page == 'themes-network'))) {
return;
}
// check if oc_error
if (isset($_GET[OC_ERR_STR]) && 'oc_error' == $_GET[OC_ERR_STR]) {
$network = is_multisite() ? 'network_' : '';
add_action($network . 'admin_notices', 'onecom_premium_theme_admin_notice', 2);
}
// exit if theme action is not for activating/enabling
if (!($_GET['action'] == 'enable' || $_GET['action'] == 'activate')) {
return;
}
// exit if theme stylesheet not available
if (!(isset($_GET[OC_THM_STR]) || isset($_GET['stylesheet']))) {
return;
}
// get stylesheet name for single/network site
$stylesheet = isset($_GET[OC_THM_STR]) ? $_GET[OC_THM_STR] : $_GET['stylesheet'];
// check if this theme is available for the current package; exit if available
$features = (array)oc_set_premi_flag(true);
if (oc_check_theme_eligibility($features, $stylesheet)) {
return true;
}
// if theme not available, prepare for redirecting back on the themes page
$temp_args = array('enabled', OC_ERR_STR);
$_SERVER['REQUEST_URI'] = remove_query_arg($temp_args, $_SERVER['REQUEST_URI']);
$referer = remove_query_arg($temp_args, wp_get_referer());
if (false === strpos($referer, '/network/themes.php')) {
wp_redirect(network_admin_url('themes.php?error=oc_error'));
} else {
wp_safe_redirect(add_query_arg(OC_ERR_STR, 'oc_error', $referer));
}
exit;
}
}
add_action('admin_print_footer_scripts', 'oc_pm_badge_injection', 999);
if (!function_exists('oc_pm_badge_injection')) {
function oc_pm_badge_injection($hook_suffix)
{
$installed_themes = wp_get_themes();
$themes_to_mark_array = [];
foreach ($installed_themes as $theme) {
if ('one.com' === strtolower($theme->display(OC_AUTHOR_STR, false))
&& onecom_is_premium_theme($theme->display(OC_AUTHOR_STR, false))
) {
$themes_to_mark_array[] = str_replace(' ', '-', strtolower($theme->display(OC_AUTHOR_STR, false)));
$themes_to_mark = json_encode($themes_to_mark_array);
}
}
?>
<script>
function _oc_pm_ribbon_injection(element) {
jQuery(element).append('<span class="badge_bg" style="position: absolute;transform: rotate(45deg);z-index: 80;width: 105px;height: 73px;padding-top: 0px;top: -26px;right: -42px;background-color: #95265e;"></span><span class="badge_icon" style="position: absolute;transform: rotate(45deg);z-index: 80;pointer-events: none;top: 8px;right: 13px;"><svg style="height: 15px;width: 9px;display: inline-block;"><use xlink:href="#topmenu_upgrade_large_d56dd1cace1438b6cbed4763fd6e5119"><svg viewBox="0 0 9 15" id="topmenu_upgrade_large_d56dd1cace1438b6cbed4763fd6e5119"><path d="M1.486 0h6L5.492 5.004l3.482-.009-6.839 9.38 1.627-6.903L0 7.469z" fill="#FFF" fill-rule="evenodd"></path></svg></use></svg></span><span class="badge_text" style="position: absolute;transform: rotate(45deg);z-index: 80;color: #fff;text-transform: uppercase;font-style: normal;font-weight: 600;font-family: \'Open Sans\', sans-serif;display: block;text-align: center;top: 18px;font-size: 11px;right: 2px;-webkit-font-smoothing: antialiased;">Premium</span>').css('overflow', 'hidden');
}
function _oc_pm_ribbon_btn(themes_list) {
if (!jQuery('.theme-info .theme-name').html()) {
return
}
$exp_name = jQuery('.theme-info .theme-name').html().toLowerCase();
$exp_name = $exp_name.split("<span");
if (-1 !== themes_list.indexOf($exp_name[0])) {
_oc_pm_ribbon_injection('.theme-overlay .screenshot');
}
}
jQuery(document).ready(function () {
//get a list of themes to mark as premium, if found none, initiate with empty json array
var themes_to_mark = '<?php echo isset($themes_to_mark) ? $themes_to_mark : "[]"; ?>';
var themes_list = JSON.parse(themes_to_mark);
var dataslug;
jQuery(".theme-browser .themes .theme").each(function (i, v) {
dataslug = jQuery(v).attr('data-slug');
if (dataslug) {
if (-1 !== themes_list.indexOf(dataslug) || -1 !== themes_list.indexOf(dataslug.replace('onecom-', ''))) {
_oc_pm_ribbon_injection(v)
}
}
});
jQuery(document).on('click', ".theme-browser .themes .theme", function () {
_oc_pm_ribbon_btn(themes_list);
jQuery(document).on('click', ".theme-header button.left, .theme-header button.right", function () {
_oc_pm_ribbon_btn(themes_list);
});
});
});
</script>
<!-- Bind action with Upgrade button -->
<script>
function ocSetModalData(data) {
if (!data) {
console.info('ValidateAction :: No data to set!');
}
jQuery('#oc_um_wrapper').attr({
'data-is_premium': data.isPremium,
'data-feature': data.feature,
'data-theme': data.theme,
'data-feature_action': data.featureAction,
'data-state': data.state || null
});
}
jQuery(document).ready(function () {
jQuery("#oc_um_footer a.oc_up_btn").click(function () {
jQuery.ajax({
url: ajaxurl,
type: "POST",
dataType: "JSON",
data: {
action: 'oc_validate_action',
operation: 'click_upgrade',
actionType: 'wppremium_click_upgrade',
isPremium: jQuery('#oc_um_wrapper').attr('data-is_premium'),
feature: jQuery('#oc_um_wrapper').attr('data-feature'),
theme: jQuery('#oc_um_wrapper').attr('data-theme') || null,
featureAction: jQuery('#oc_um_wrapper').attr('data-feature_action')
},
error: function (xhr, textStatus, errorThrown) {
console.log("Some error occured during logging!");
}
});
jQuery('#oc_um_wrapper').removeAttr('data-is_premium data-feature data-theme data-feature_action');
});
jQuery("#oc_um_close").click(function () {
if (!jQuery('#oc_um_wrapper').attr('data-feature')) {
return;
}
jQuery.ajax({
url: ajaxurl,
type: "POST",
dataType: "JSON",
data: {
action: 'oc_validate_action',
operation: 'close_upgrade',
actionType: 'wppremium_close_upgrade',
isPremium: jQuery('#oc_um_wrapper').attr('data-is_premium'),
feature: jQuery('#oc_um_wrapper').attr('data-feature'),
theme: jQuery('#oc_um_wrapper').attr('data-theme') || null,
featureAction: jQuery('#oc_um_wrapper').attr('data-feature_action'),
state: jQuery('#oc_um_wrapper').attr('data-state') || null
},
error: function (xhr, textStatus, errorThrown) {
console.log("Some error occured during logging!");
}
});
jQuery('#oc_um_wrapper').removeAttr('data-is_premium data-feature data-theme data-feature_action');
});
jQuery("#oc_um_footer a.oc_cancel_btn").click(function () {
if (!jQuery('#oc_um_wrapper').attr('data-feature')) {
return;
}
jQuery.ajax({
url: ajaxurl,
type: "POST",
dataType: "JSON",
data: {
action: 'oc_validate_action',
operation: 'close_upgrade',
actionType: 'wppremium_close_upgrade',
isPremium: jQuery('#oc_um_wrapper').attr('data-is_premium'),
feature: jQuery('#oc_um_wrapper').attr('data-feature'),
theme: jQuery('#oc_um_wrapper').attr('data-theme') || null,
featureAction: jQuery('#oc_um_wrapper').attr('data-feature_action'),
state: jQuery('#oc_um_wrapper').attr('data-state') || null
},
error: function (xhr, textStatus, errorThrown) {
console.log("Some error occured during logging!");
}
});
jQuery('#oc_um_wrapper').removeAttr('data-is_premium data-feature data-theme data-feature_action');
});
});
</script>
<?php
}
}
/* Cutomizer controls */
add_action('customize_controls_enqueue_scripts', function () {
$installed_themes = wp_get_themes();
$themes_to_mark_arr = [];
$themes_to_mark = "[]";
foreach ($installed_themes as $theme) {
if ('one.com' === strtolower($theme->display(OC_AUTHOR_STR, false))
&& onecom_is_premium_theme($theme->display(OC_AUTHOR_STR, false))
) {
$themes_to_mark_arr[] = strtolower($theme->display(OC_AUTHOR_STR, false));
$themes_to_mark = json_encode($themes_to_mark_arr);
}
}
wp_add_inline_script('customize-controls', '(function ( api ) {
api.bind( "ready", function () {
var _query = api.previewer.query;
api.previewer.query = function () {
var theme_ = ' . $themes_to_mark . ';
var query = _query.call( this );
// console.log($themes_to_mark);
// console.log(query.customize_theme)
if(-1 !== theme_.indexOf(query.customize_theme)){
//alert("halt!!");
}
query.foo = "bar";
return query;
};
});
})( wp.customize );'
);
});
/**
* Function to get the client ip address
**/
if (!function_exists('onecom_get_client_ip_env')) {
function onecom_get_client_ip_env()
{
if (getenv('HTTP_CLIENT_IP')) {
$clientIP = @getenv('HTTP_CLIENT_IP');
} else if (getenv('REMOTE_ADDR')) {
$clientIP = @getenv('REMOTE_ADDR');
} else {
$clientIP = $_SERVER['ONECOM_CLIENT_IP'] = '0.0.0.0';
}
return $clientIP;
}
}
/**
* Function to buil URLs as per locale
*/
global $onecom_global_links;
$onecom_global_links = array();
$onecom_global_links['en'] = array(
OC_MAIN_GUIDE_STR => 'https://help.one.com/hc/en-us/categories/360002171377-WordPress',
OC_DISC_GUIDE_STR => 'https://help.one.com/hc/en-us/articles/115005586029-Discouraged-WordPress-plugins',
OC_STG_GUIDE_STR => 'https://help.one.com/hc/en-us/articles/360000020617',
OC_COOKIE_GUIDE_STR => 'https://help.one.com/hc/en-us/articles/360001472758',
OC_PRM_PAGE_STR => 'https://www.one.com/en/wordpress-hosting'
);
$onecom_global_links['cs_CZ'] = array(
OC_MAIN_GUIDE_STR => 'https://help.one.com/hc/cs/categories/360002171377-WordPress',
OC_DISC_GUIDE_STR => 'https://help.one.com/hc/cs/articles/115005586029-Nedoporu%C4%8Dovan%C3%A9-moduly-plug-in-ve-WordPressu',
OC_STG_GUIDE_STR => 'https://help.one.com/hc/cs/articles/360000020617',
OC_COOKIE_GUIDE_STR => 'https://help.one.com/hc/cs/articles/360001472758',
OC_PRM_PAGE_STR => 'https://www.one.com/cs/wordpress'
);
$onecom_global_links['da_DK'] = array(
OC_MAIN_GUIDE_STR => 'https://help.one.com/hc/da/categories/360002171377-WordPress',
OC_DISC_GUIDE_STR => 'https://help.one.com/hc/da/articles/115005586029-Frar%C3%A5dede-WordPress-plugins',
OC_STG_GUIDE_STR => 'https://help.one.com/hc/da/articles/360000020617',
OC_COOKIE_GUIDE_STR => 'https://help.one.com/hc/da/articles/360001472758',
OC_PRM_PAGE_STR => 'https://www.one.com/da/wordpress'
);
$onecom_global_links['de_DE'] = array(
OC_MAIN_GUIDE_STR => 'https://help.one.com/hc/de/categories/360002171377-WordPress',
OC_DISC_GUIDE_STR => 'https://help.one.com/hc/de/articles/115005586029-Nicht-empfohlene-Plugins',
OC_STG_GUIDE_STR => 'https://help.one.com/hc/de/articles/360000020617',
OC_COOKIE_GUIDE_STR => 'https://help.one.com/hc/de/articles/360001472758',
OC_PRM_PAGE_STR => 'https://www.one.com/de/wordpress'
);
$onecom_global_links['es_ES'] = array(
OC_MAIN_GUIDE_STR => 'https://help.one.com/hc/es/categories/360002171377-WordPress',
OC_DISC_GUIDE_STR => 'https://help.one.com/hc/es/articles/115005586029-Plugins-de-WordPress-no-recomendados',
OC_STG_GUIDE_STR => 'https://help.one.com/hc/es/articles/360000020617',
OC_COOKIE_GUIDE_STR => 'https://help.one.com/hc/es/articles/360001472758',
OC_PRM_PAGE_STR => 'https://www.one.com/es/wordpress'
);
$onecom_global_links['fr_FR'] = array(
OC_MAIN_GUIDE_STR => 'https://help.one.com/hc/fr/categories/360002171377-WordPress',
OC_DISC_GUIDE_STR => 'https://help.one.com/hc/fr/articles/115005586029-Les-plugins-WordPress-d%C3%A9conseill%C3%A9s',
OC_STG_GUIDE_STR => 'https://help.one.com/hc/fr/articles/360000020617',
OC_COOKIE_GUIDE_STR => 'https://help.one.com/hc/fr/articles/360001472758',
OC_PRM_PAGE_STR => 'https://www.one.com/fr/wordpress'
);
$onecom_global_links['it_IT'] = array(
OC_MAIN_GUIDE_STR => 'https://help.one.com/hc/it/categories/360002171377-WordPress',
OC_DISC_GUIDE_STR => 'https://help.one.com/hc/it/articles/115005586029-Plugin-per-WordPress-sconsigliati',
OC_STG_GUIDE_STR => 'https://help.one.com/hc/it/articles/360000020617',
OC_COOKIE_GUIDE_STR => 'https://help.one.com/hc/it/articles/360001472758',
OC_PRM_PAGE_STR => 'https://www.one.com/it/wordpress'
);
$onecom_global_links['nb_NO'] = array(
OC_MAIN_GUIDE_STR => 'https://help.one.com/hc/no/categories/360002171377-WordPress',
OC_DISC_GUIDE_STR => 'https://help.one.com/hc/no/articles/115005586029-Ikke-anbefalte-WordPress-plugins',
OC_STG_GUIDE_STR => 'https://help.one.com/hc/no/articles/360000020617',
OC_COOKIE_GUIDE_STR => 'https://help.one.com/hc/no/articles/360001472758',
OC_PRM_PAGE_STR => 'https://www.one.com/no/wordpress'
);
$onecom_global_links['nl_NL'] = array(
OC_MAIN_GUIDE_STR => 'https://help.one.com/hc/nl/categories/360002171377-WordPress',
OC_DISC_GUIDE_STR => 'https://help.one.com/hc/nl/articles/115005586029-Niet-aanbevolen-WordPress-plugins',
OC_STG_GUIDE_STR => 'https://help.one.com/hc/nl/articles/360000020617',
OC_COOKIE_GUIDE_STR => 'https://help.one.com/hc/nl/articles/360001472758',
OC_PRM_PAGE_STR => 'https://www.one.com/nl/wordpress-hosting'
);
$onecom_global_links['pl_PL'] = array(
OC_MAIN_GUIDE_STR => 'https://help.one.com/hc/pl/categories/360002171377-WordPress',
OC_DISC_GUIDE_STR => 'https://help.one.com/hc/pl/articles/115005586029-Niezalecane-wtyczki-WordPress',
OC_STG_GUIDE_STR => 'https://help.one.com/hc/pl/articles/360000020617',
OC_COOKIE_GUIDE_STR => 'https://help.one.com/hc/pl/articles/360001472758',
OC_PRM_PAGE_STR => 'https://www.one.com/pl/wordpress'
);
$onecom_global_links['pt_PT'] = array(
OC_MAIN_GUIDE_STR => 'https://help.one.com/hc/pt/categories/360002171377-WordPress',
OC_DISC_GUIDE_STR => 'https://help.one.com/hc/pt/articles/115005586029-Plugins-para-o-WordPress-desaconselh%C3%A1veis',
OC_STG_GUIDE_STR => 'https://help.one.com/hc/pt/articles/360000020617',
OC_COOKIE_GUIDE_STR => 'https://help.one.com/hc/pt/articles/360001472758',
OC_PRM_PAGE_STR => 'https://www.one.com/pt/wordpress'
);
$onecom_global_links['fi'] = array(
OC_MAIN_GUIDE_STR => 'https://help.one.com/hc/fi/categories/360002171377-WordPress',
OC_DISC_GUIDE_STR => 'https://help.one.com/hc/fi/articles/115005586029-WordPress-lis%C3%A4osat-joiden-k%C3%A4ytt%C3%B6%C3%A4-ei-suositella',
OC_STG_GUIDE_STR => 'https://help.one.com/hc/fi/articles/360000020617',
OC_COOKIE_GUIDE_STR => 'https://help.one.com/hc/fi/articles/360001472758',
OC_PRM_PAGE_STR => 'https://www.one.com/fi/wordpress'
);
$onecom_global_links['sv_SE'] = array(
OC_MAIN_GUIDE_STR => 'https://help.one.com/hc/sv/categories/360002171377-WordPress',
OC_DISC_GUIDE_STR => 'https://help.one.com/hc/sv/articles/115005586029-WordPress-till%C3%A4gg-som-vi-avr%C3%A5der-fr%C3%A5n',
OC_STG_GUIDE_STR => 'https://help.one.com/hc/sv/articles/360000020617',
OC_COOKIE_GUIDE_STR => 'https://help.one.com/hc/sv/articles/360001472758',
OC_PRM_PAGE_STR => 'https://www.one.com/sv/wordpress-hosting'
);
if (!function_exists('onecom_generic_locale_link')) {
function onecom_generic_locale_link($request, $locale, $lang_only = 0)
{
global $onecom_global_links;
if (!empty($onecom_global_links) && array_key_exists($locale, $onecom_global_links)) {
if ($lang_only != 0) {
return strstr($locale, '_', true);
}
if (!empty($onecom_global_links[$locale][$request])) {
return $onecom_global_links[$locale][$request];
}
}
if ($lang_only != 0) {
return 'en';
}
return $onecom_global_links['en'][$request];
}
}
/**
* Hide one.com plugins from WordPress plugin listing
*/
if (!function_exists('onecom_hide_plugins')) {
function onecom_hide_plugins($plugins)
{
global $wp_list_table;
$url_condition = (empty($_GET['premium']) || intval($_GET['premium']) !== 1);
foreach ($wp_list_table->items as $key => $plugin) {
if ($url_condition && in_array($plugin['Author'], ['onecom', 'one.com'])) {
unset($wp_list_table->items[$key]);
}
}
}
}
/* Deactivated hiding the plugins until we ensure a reliable auto-updates solution */
//add_action( 'pre_current_active_plugins', 'onecom_hide_plugins' );
/*
* Force enable automatic updates for one.com plugins
* Disable email notification if one.com plugin update
* */
function onecom_autoupdates($update, $item)
{
if (
is_object($item)
&& property_exists($item, 'Author')
&& in_array($item->Author, ['one.com', 'onecom'])
) {
add_filter( 'auto_plugin_update_send_email', '__return_false' );
return true;
}
return $update;
}
add_filter('auto_update_plugin', 'onecom_autoupdates', 10, 2);
// one.com actions (stats) after automatic update completed
function onecom_automatic_updates_complete( $update_results ) {
// return if it is not a plugin update
if ( empty( $update_results ) || !isset($update_results['plugin']) ) {
return;
}
// fetch each one.com plugin update
foreach ( $update_results['plugin'] as $result ) {
if ( property_exists($result, 'item')
&& property_exists($result->item, 'Author')
&& in_array($result->item->Author, ['one.com', 'onecom'])
) {
// prepare data to push into stats
$plugin_slug = $result->item->slug;
$additional_info = array(
'additional_info' => json_encode(array(
'current_version' => $result->item->current_version,
'new_version' => $result->item->new_version,
))
);
if(strpos('onecom-vcache',dirname(__FILE__))){
$referrer = basename(dirname(dirname(dirname(dirname(__FILE__)))));
} else{
$referrer = basename(dirname(dirname(dirname(__FILE__))));
}
// Push auto update stats
(class_exists(OC_PUSH_STATS) ? \OCPushStats::push_stats_event_themes_and_plugins('auto_update', 'plugin', $plugin_slug, $referrer, $additional_info) : '');
}
}
}
add_action( 'automatic_updates_complete', 'onecom_automatic_updates_complete' );
// Function to get UTM medium (current page tracking) for CP links landing
if (!function_exists('oc_utm_medium')) {
function oc_utm_medium() {
if (isset($_GET['page']) &&
$_GET['page'] == 'onecom-wp-health-monitor') {
return $utm_medium = 'health_monitor';
} else if (isset($_GET['page']) &&
$_GET['page'] == 'onecom-wp-vulnerability-monitor') {
return $utm_medium = 'vulnerability_monitor';
} else if (isset($_GET['page']) &&
$_GET['page'] == 'onecom-wp-under-construction') {
return $utm_medium = 'maintenance_mode';
} else if (isset($_GET['page']) &&
$_GET['page'] == 'onecom-vcache-plugin') {
return $utm_medium = 'performance_cache';
} else if (isset($_GET['page']) &&
$_GET['page'] == 'onecom-wp-spam-protection') {
return $utm_medium = 'spam_protection';
} else if (isset($_GET['page']) &&
$_GET['page'] == 'onecom-wp-staging') {
return $utm_medium = 'staging';
} else if (isset($_GET['page'])) {
$current_page = str_replace('-', '_', $_GET['page']);
return $utm_medium = $current_page;
} else {
// Ideally, there should not be any current case
return $utm_medium = '';
}
}
}
if (!function_exists('oc_upgrade_link')) {
function oc_upgrade_link($type = '')
{
// Set UTM medium as a combination of current page + link type/location
if (isset($type) && !empty($type)) {
$utm_medium_location = oc_utm_medium().'_'.$type;
} else {
$utm_medium_location = oc_utm_medium();
}
$first_part = "https://www.one.com/admin/select-admin-domain.do?domain=";
$middle_part = !empty(OC_DOMAIN_NAME) ? OC_DOMAIN_NAME : "";
$last_part = "&targetUrl=/admin/managedwp/upgrade.do";
$utm_param = "&utm_source=onecom_wp_plugin&utm_medium=".$utm_medium_location;
return $first_part . $middle_part . $last_part . $utm_param;
}
}
if (!defined('OC_INLINE_LOGO')) {
define('OC_INLINE_LOGO', sprintf('<img src="%s" alt="%s" />', plugin_dir_url(__FILE__) . '/assets/images/one.com.black.svg', __('One.com', OC_VALIDATOR_DOMAIN)));
}
// function moved from generic plugin to validator //
if (!function_exists('onecom_get_free_menu_position')) {
function onecom_get_free_menu_position($start, $increment = 0.3)
{
foreach ($GLOBALS['menu'] as $key => $menu) {
$menus_positions[] = $key;
}
if (!in_array($start, $menus_positions)) {
return $start;
}
/* the position is already reserved find the closet one */
while (in_array($start, $menus_positions)) {
$start += $increment;
}
return (string)$start;
}
}
// ------------ redesign notice --------------- //
//ajax handle for set trasient forever
add_action('wp_ajax_oc_set_redesign_notice_forever','oc_set_redesign_notice_forever_callback');
function oc_set_redesign_notice_forever_callback(){
$status = false;
$message = __("Some error occurred, please reload the page and try again.", OC_VALIDATOR_DOMAIN);
if(isset($_POST['action']) && $_POST['action'] === 'oc_set_redesign_notice_forever' && $_POST['setTransient'] === 'forever'){
$plugin_forever_key = 'redesign_notices_forever_dismiss_'.get_current_user_id();
set_site_transient($plugin_forever_key, 1, 0);//WITH NO EXPIRATION
$status = true;
$message = __("Updated",OC_VALIDATOR_DOMAIN);
}
wp_send_json(array( "status" => $status,"message" => $message));wp_die();
}
//To add admin notices on dashboard about plugin redesign
if (!function_exists('oc_plugin_redesign_notices')) {
function oc_plugin_redesign_notices() {
$user = wp_get_current_user();
//return if not administrator user role
if ( (!isset($user->roles)) || (! in_array( 'administrator', (array) $user->roles )) ) {
return;
}
//Prepare redesign transient keys
$plugin_30days_key = 'redesign_notices_show_for_30_days_'.get_current_user_id();
$plugin_forever_key = 'redesign_notices_forever_dismiss_'.get_current_user_id();
$isExecuted = 'redesign_notices_for_executed_'.get_current_user_id();
$get_30days_transient = get_site_transient($plugin_30days_key);
$get_forever_dismiss_transient = get_site_transient($plugin_forever_key);
$isSetExecuted = get_site_transient($isExecuted);
//return if dismiss for forever
if($get_forever_dismiss_transient || !empty($get_forever_dismiss_transient)){
return;
}
if((!$get_30days_transient || empty($get_30days_transient)) && (!$isSetExecuted || empty($isSetExecuted))) {
set_site_transient($plugin_30days_key, 1, 30 * DAY_IN_SECONDS);//for 30 days
//set_site_transient($plugin_30days_key, 1, 2 * MINUTE_IN_SECONDS);//for 2 minute
set_site_transient($isExecuted, 1, 0);
}
$get_30days_transient = get_site_transient($plugin_30days_key);
//if 30 days transient expire then simply return
if(!$get_30days_transient || empty($get_30days_transient)){
return;
}
$img_url = plugin_dir_url(__FILE__) . 'assets/images/one.com-pl.svg';
$plugin_redesign_img = plugin_dir_url(__FILE__) . 'assets/images/plugin-redesign.svg';
$crossIcon = plugin_dir_url(__FILE__) . 'assets/images/notice-cross-icon.svg';
?>
<style>
.oc-plugin-redesign-notices-wrap {
display: flex;
align-items: flex-start;
padding: 0 43px 0 16px;
}
.oc-plugin-redesign-notices-desc {
flex: 2;
padding-top: 12px;
padding-bottom: 12px;
padding-right: 40px;
}
.oc-plugin-redesign-notices {
padding: 16px;
background: #E6F2FA;
/*min-height: 157px;*/
position: relative;
display: inline-table;
border: 1px solid #80BBE3;
width: 100%;
width: -moz-available; /* WebKit-based browsers will ignore this. */
width: -webkit-fill-available; /* Mozilla-based browsers will ignore this. */
width: fill-available;
}
.notice.plugin-redesign {
padding: 0;
border: 0;
box-shadow: none;
margin: 16px 0;
width: 100%;
display: inline-table;
background: #E6F2FA;
}
.oc-plugin-redesign-notices-img{
height:125px;
}
.oc-plugin-redesign-notices-img img {
height: 100%;
}
.oc-plugin-redesign-notices-desc .welcome_text {
font-family: "Open Sans", sans-serif;
font-style: normal;
font-weight: 400;
font-size: 23px;
line-height: 28px;
color: #3C3C3C;
flex: none;
order: 0;
flex-grow: 0;
margin: 0;
padding:0;
}
.oc-plugin-redesign-notices-desc p {
font-family:"Open Sans", sans-serif;
font-style: normal;
font-weight: normal;
font-size: 14px;
line-height: 19px;
color: #6D6D6D;
flex: none;
order: 0;
align-self: stretch;
flex-grow: 0;
margin: 5px 0;
}
.oc-plugin-redesign-cta{
text-decoration: none;
display:inline-block;
text-align:center;
font-size:12px;
line-height: 30px;
font-weight: 600;
color:#0078C8;
padding:0 30px;
border: 1px solid #80BBE3;
border-radius:100px;
margin-top:12px;
}
.redesign-notice-cross {
width: 14px;
position: absolute;
right: 20px;
height: 14px;
z-index: 999;
padding: 17px;
cursor: pointer;
}
@media (min-width: 320px) and (max-width: 480px) {
.oc-plugin-redesign-notices-desc{
flex:1;
padding:0;
}
.oc-plugin-redesign-notices-img{
display:none;
}
}
</style>
<div class="notice plugin-redesign">
<div class="redesign-notice-cross"><img src="<?php echo $crossIcon;?>" alt="x"></div>
<div class="oc-plugin-redesign-notices">
<div class="oc-plugin-redesign-notices-wrap">
<div class="oc-plugin-redesign-notices-desc">
<p class="welcome_text"><?php echo sprintf(__('Welcome to %s plugins', OC_VALIDATOR_DOMAIN),'one.com'); ?></p>
<p><?php echo __('Look after the health, security and performance of your website, and customise it with recommended themes and plugins.',OC_VALIDATOR_DOMAIN);?></p>
<a class="oc-plugin-redesign-cta" href="<?php menu_page_url("onecom-wp-health-monitor", true);?>"><?php echo __('Explore plugins', OC_VALIDATOR_DOMAIN)?></a>
</div>
<div class="oc-plugin-redesign-notices-img">
<img src="<?php echo $plugin_redesign_img;?>" alt="<?php echo __('one.com', OC_VALIDATOR_DOMAIN);?>">
</div>
</div>
</div>
</div>
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery(document).on('click','.redesign-notice-cross',function(){
jQuery.ajax({
url: ajaxurl,
type: "POST",
dataType: "JSON",
data: {
action: 'oc_set_redesign_notice_forever',
setTransient:'forever'
},
success: function(response){
//let result = response;//jQuery.parseJSON(response);
if (response.message === 'Updated') {
jQuery('.notice.plugin-redesign').remove();
}else{
oc_alert("<?php echo htmlentities(OC_GENERIC_ERR_MSG); ?>", response.message, 5000)
}
},
error: function (xhr, textStatus, errorThrown) {
oc_alert("<?php echo htmlentities(OC_GENERIC_ERR_MSG); ?>", 'error', 5000)
}
});
});
});
</script>
<?php
}
}
//load notices only dashboard
add_action( 'load-index.php','wp_dashboard_notices_call');
if (!function_exists('wp_dashboard_notices_call')) {
function wp_dashboard_notices_call(){
add_action('admin_notices', 'oc_plugin_redesign_notices');
}
}
// ------------ redesign notice end --------------- //
// --------------------------inclusion ends ------------//