File: /home/lucendi/www/wp-content/plugins/mesmerize-companion/theme-data/mesmerize/functions.php
<?php
require_once $this->themeDataPath( '/updates.php' );
require_once $this->themeDataPath( '/custom-style.php' );
require_once $this->themeDataPath( '/options/overlap.php' );
if ( ! function_exists( 'mesmerize_get_upgrade_link' ) ) {
function mesmerize_get_upgrade_link( $args = array(), $hash = '' ) {
$base_url = 'https://extendthemes.com/go/mesmerize-upgrade/';
$url = add_query_arg( $args, $base_url );
if ( $hash = trim( $hash ) ) {
$hash = '#' . $hash;
}
$url = $url . esc_url( $hash );
return apply_filters( 'mesmerize_upgrade_url', $url, $base_url, $args, $hash );
}
}
//add_filter('mesmerize_can_show_demo_content', "__return_true");
add_filter( 'mesmerize_show_inactive_plugin_infos', '__return_false' );
add_filter(
'mesmerize_full_width_page',
function ( $value ) {
if ( Mesmerize\Companion::instance()->isMaintainable() ) {
$value = true;
}
return $value;
}
);
add_filter(
'mesmerize_page_content_wrapper_class',
function ( $class ) {
if ( mesmerize_is_front_page() || apply_filters( 'mesmerize_full_width_page', false ) ) {
$class = array_diff( $class, array( 'gridContainer' ) );
}
return $class;
}
);
add_filter(
'mesmerize_page_content_class',
function ( $class ) {
if ( Mesmerize\Companion::instance()->isMaintainable() ) {
$class[] = 'no-padding';
$class = array_diff( $class, array( 'gridContainer' ) );
}
return $class;
}
);
function mesmerize_companion_get_post_thumbnail() {
ob_start();
the_post_thumbnail( 'post-thumbnail', array( 'class' => 'blog-postimg' ) );
$thumbnail = trim( ob_get_clean() );
if ( empty( $thumbnail ) ) {
if ( is_customize_preview() || 1 ) {
return "<img src='https://placeholdit.imgix.net/~text?txtsize=38&bg=FF7F66&txtclr=FFFFFFe&w=400&h=250' class='blog-postimg'/>";
} else {
return $thumbnail;
}
}
return $thumbnail;
}
function mesmerize_companion_latest_news_excerpt_length() {
return 30;
}
function mesmerize_companion_latest_excerpt_more() {
return '[…]';
}
function mesmerize_companion_latest_news( $attrs ) {
ob_start(); ?>
<?php
$atts = shortcode_atts(
array(
'columns' => '4',
'tablet_columns' => '6',
'item_class' => 'card y-move bordered',
'posts' => '',
),
$attrs
);
$recentPosts = new WP_Query();
$posts = intval( $atts['posts'] );
$cols = intval( $atts['columns'] );
$tablet_cols = intval( $atts['tablet_columns'] );
$post_numbers = ( $posts ) ? $posts : 12 / $cols;
add_filter( 'excerpt_length', 'mesmerize_companion_latest_news_excerpt_length' );
add_filter( 'excerpt_more', 'mesmerize_companion_latest_excerpt_more' );
?>
<div class="row center-sm content-left-sm">
<?php
$recentPosts->query( 'posts_per_page=' . $post_numbers . ';post_status=publish;post_type=post;ignore_sticky_posts=1;' );
while ( $recentPosts->have_posts() ) :
$recentPosts->the_post();
if ( is_sticky() ) {
continue;
}
$url = get_the_permalink();
?>
<div id="post-<?php the_ID(); ?>" class="col-sm-<?php echo esc_attr( $tablet_cols ); ?> col-md-<?php echo esc_attr( $cols ); ?> space-bottom space-bottom-xs">
<div class="post-content <?php echo esc_attr( $atts['item_class'] ); ?>">
<?php mesmerize_print_post_thumb(); ?>
<div class="col-padding col-padding-xs">
<h3 class="post-title space-bottom-small">
<a href="<?php echo esc_url( $url ); ?>" rel="bookmark">
<?php the_title(); ?>
</a>
</h3>
<?php the_excerpt(); ?>
<a class="read-more link" href="<?php echo esc_url( $url ); ?>">
<?php echo mesmerize_wp_kses_post( \Mesmerize\Companion::getThemeMod( 'latest_news_read_more', 'Read more' ) ); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped, WordPress.Security.EscapeOutput.UnsafePrintingFunction ?>
</a>
</div>
</div>
</div>
<?php
endwhile;
wp_reset_postdata();
?>
</div>
<?php
remove_filter( 'excerpt_length', 'mesmerize_companion_latest_news_excerpt_length' );
remove_filter( 'excerpt_more', 'mesmerize_companion_latest_excerpt_more' );
$content = ob_get_contents();
ob_end_clean();
return $content;
}
add_shortcode( 'mesmerize_latest_news', 'mesmerize_companion_latest_news' );
function mesmerize_companion_blog_link() {
if ( 'page' == get_option( 'show_on_front' ) ) {
if ( get_option( 'page_for_posts' ) ) {
return esc_url( get_permalink( get_option( 'page_for_posts' ) ) );
} else {
return esc_url( home_url( '/?post_type=post' ) );
}
} else {
return esc_url( home_url( '/' ) );
}
}
function mesmerize_companion_contact_form( $attrs = array() ) {
$atts = shortcode_atts(
array(
'shortcode' => '',
),
$attrs
);
$decoded_shortcode = html_entity_decode( html_entity_decode($atts['shortcode']) ); // backward compatibility reason
$sanitized_shortcode = sanitize_text_field($decoded_shortcode);
$contact_shortcode = '';
if ( $atts['shortcode'] ) {
$contact_shortcode = '[' . $sanitized_shortcode . ']';
}
ob_start();
if ( $contact_shortcode !== '' ) {
echo do_shortcode( $contact_shortcode );
} else {
//phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped, WordPress.Security.EscapeOutput.UnsafePrintingFunction
echo '<p style="text-align:center;color:#ababab">' . __( 'Contact form will be displayed here. To activate it you have to set the "contact form shortcode" parameter in Customizer.', 'mesmerize-companion' ) . '</p>';
}
$content = ob_get_contents();
ob_end_clean();
return $content;
}
add_shortcode( 'mesmerize_contact_form', 'mesmerize_companion_contact_form' );
add_filter(
'cloudpress\template\page_content',
function ( $content ) {
$content = str_replace( '[mesmerize_blog_link]', mesmerize_companion_blog_link(), $content );
$content = str_replace( '[tag_companion_uri]', \Mesmerize\Companion::instance()->themeDataURL(), $content );
return $content;
}
);
add_filter(
'cloudpress\companion\ajax_cp_data',
function ( $data, $companion, $filter ) {
if ( $filter !== 'sections' ) {
return $data;
}
/** @var \Mesmerize\Companion $companion */
$contentSections = $companion->loadPHPConfig( $companion->themeDataPath( '/sections/sections.php' ) );
$data['sections'] = $contentSections;
$showPro = apply_filters( 'mesmerize_show_info_pro_messages', true );
if ( $showPro ) {
$proSections = $companion->loadPHPConfig( $companion->themeDataPath( '/sections/pro-only-sections.php' ) );
$data['sections'] = array_merge( $contentSections, $proSections );
}
if ( apply_filters( 'mesmerize_show_custom_section', false ) ) {
$customSectionContentFile = $companion->themeDataPath( '/assets/custom-section.html' );
$customSectionContent = file_get_contents( $customSectionContentFile );
$data['sections'][] = array(
'index' => 1,
'id' => 'custom-section',
'elementId' => 'custom-section',
'type' => 'section-available',
'name' => 'Custom Section',
'content' => $customSectionContent,
'thumb' => '\/\/onepageexpress.com\/default-assets\/previews\/custom-section.png',
'preview' => '\/\/onepageexpress.com\/default-assets\/previews\/custom-section.png',
'description' => 'simple custom section',
'category' => 'custom',
'prepend' => false,
'pro' => true,
);
}
return $data;
},
10,
3
);
add_filter(
'cloudpress\companion\ajax_cp_data',
function ( $data, $companion, $filter ) {
if ( $filter !== 'sections' ) {
return $data;
}
$currentData = $data;
$data = \Mesmerize\Companion::filterArrayDefaults( $data );
$data = isset( $data['sections'] ) ? $data['sections'] : array();
$categorized = array();
foreach ( $data as $item ) {
if ( ! isset( $item['category'] ) ) {
$item['category'] = 'general';
}
$category = strtolower( $item['category'] );
if ( ! isset( $categorized[ $category ] ) ) {
$categorized[ $category ] = array();
}
$categorized[ $category ][] = $item;
}
$categorized = apply_filters( 'cloudpress\customizer\control\content_sections\data', $categorized );
$currentData['sections'] = $categorized;
return $currentData;
},
PHP_INT_MAX,
3
);
add_action(
'cloudpress\template\load_assets',
function ( $companion ) {
$ver = $companion->version;
if ( apply_filters( 'mesmerize_load_bundled_version', true ) ) {
/** @var \Mesmerize\Companion $companion */
wp_enqueue_script( 'companion-bundle', $companion->themeDataURL( '/assets/js/companion.bundle.min.js' ), array(), $ver, true );
wp_enqueue_style( 'companion-bundle', $companion->themeDataURL( '/assets/css/companion.bundle.min.css' ), array(), $ver );
return;
}
wp_enqueue_style( $companion->getThemeSlug() . '-common-css', $companion->themeDataURL( '/assets/css/common.css' ), array( $companion->getThemeSlug() . '-style' ), $ver );
wp_enqueue_style( 'companion-page-css', $companion->themeDataURL( '/sections/content.css' ), array(), $ver );
wp_register_script( 'companion-' . $companion->getThemeSlug(), null, array( 'jquery' ), $ver );
if ( ! is_customize_preview() ) {
wp_enqueue_script( 'companion-cotent-swap', $companion->themeDataURL( '/assets/js/HoverFX.js' ), array( 'companion-' . $companion->getThemeSlug() ), $ver );
}
wp_enqueue_script( 'companion-countup', $companion->themeDataURL( '/assets/js/countup.js' ), array( 'companion-' . $companion->getThemeSlug() ), $ver );
wp_enqueue_script( 'companion-scripts', $companion->themeDataURL( '/sections/scripts.js' ), array( 'companion-' . $companion->getThemeSlug() ), $ver );
}
);
function mesmerize_companion_page_builder_get_css_value( $value, $unit = false ) {
$noUnitValues = array( 'inherit', 'auto', 'initial' );
if ( ! in_array( $value, $noUnitValues ) ) {
return $value . $unit;
}
return $value;
}
function mesmerize_companion_get_front_page_content( $companion ) {
$defaultSections = apply_filters(
'mesmerize_default_sections',
array(
'overlappable-4',
'about-1',
'features-12-card-bordered',
'content-2',
'content-3',
'portfolio-4',
'testimonials-5',
'cta-blue-section',
'team-2',
'blog-section',
'contact-1',
)
);
$alreadyColoredSections = apply_filters( 'mesmerize_already_colored_sections', array( 'contact-1', 'cta-blue-section' ) );
/** @var \Mesmerize\Companion $companion */
$availableSections = apply_filters( 'mesmerize_available_sections', $companion->loadPHPConfig( $companion->themeDataPath( '/sections/sections.php' ) ), $companion );
$content = '';
$colors = array( '#ffffff', '#f5fafd' );
$colorIndex = 0;
foreach ( $defaultSections as $ds ) {
foreach ( $availableSections as $as ) {
if ( $as['id'] == $ds ) {
$_content = $as['content'];
if ( strpos( $_content, 'data-bg="transparent"' ) === false && ! in_array( $ds, $alreadyColoredSections ) ) {
$_content = preg_replace( '/\<div/', '<div style="background-color:' . $colors[ $colorIndex ] . '" ', $_content, 1 );
$colorIndex = $colorIndex ? 0 : 1;
} else {
$colorIndex = 0;
}
$_content = preg_replace( '/\<div/', '<div id="' . $as['elementId'] . '" ', $_content, 1 );
$content .= $_content;
break;
}
}
}
return $content;
}
add_filter(
'cloudpress\companion\front_page_content',
function ( $content, $companion ) {
$content = mesmerize_companion_get_front_page_content( $companion );
return \Mesmerize\Companion::filterDefault( $content );
},
10,
2
);
add_filter( 'mesmerize_supports-header-slider', '__return_true' );
add_filter(
'cloudpress\customizer\control\content_sections\data',
function ( $data ) {
$categories = array(
'overlappable',
'about',
'features',
'content',
'cta',
'counters',
'FAQ',
'gallery',
'portfolio',
'pricing',
'promo',
'testimonials',
'clients',
'team',
'latest_news',
'contact',
'woocommerce',
);
$result = array();
foreach ( $categories as $cat ) {
if ( isset( $data[ $cat ] ) ) {
$result[ $cat ] = $data[ $cat ];
unset( $data[ $cat ] );
}
}
$result = array_merge( $result, $data );
return $result;
}
);
add_filter(
'cloudpress\customizer\control\content_sections\category_label',
function ( $label, $category ) {
switch ( $category ) {
case 'latest_news':
$label = __( 'Latest News', 'mesmerize-companion' );
break;
case 'cta':
$label = __( 'Call to action', 'mesmerize-companion' );
break;
default:
$label = $label;
break;
}
return $label;
},
10,
2
);
add_action( 'edit_form_after_title', 'mesmerize_companion_add_maintainable_filter' );
function mesmerize_companion_add_maintainable_filter( $post ) {
$companion = \Mesmerize\Companion::instance();
$maintainable = $companion->isMaintainable( $post->ID );
add_editor_style( get_template_directory_uri() . '/style.css' );
add_editor_style( get_stylesheet_uri() );
add_editor_style( $companion->themeDataURL( '/assets/css/common.css' ) );
add_editor_style( $companion->themeDataURL( '/sections/content.css' ) );
// add_editor_style($companion->themeDataURL('/assets/css/HoverFX.css'));
add_editor_style( get_template_directory_uri() . '/assets/font-awesome/font-awesome.min.css' );
if ( $maintainable ) {
add_filter( 'tiny_mce_before_init', 'mesmerize_companion_maintainable_pages_tinymce_init' );
}
}
add_filter(
'body_class',
function ( $classes ) {
$companion = \Mesmerize\Companion::instance();
$maintainable = $companion->isMaintainable();
if ( $maintainable ) {
if ( in_array( 'mesmerize-content-padding', $classes ) ) {
$classes = array_diff( $classes, array( 'mesmerize-content-padding' ) );
}
$classes[] = 'mesmerize-content-no-padding ';
}
return $classes;
},
PHP_INT_MAX
);
function mesmerize_companion_maintainable_pages_tinymce_init( $init ) {
$init['verify_html'] = false;
// convert newline characters to BR
$init['convert_newlines_to_brs'] = true;
// don't remove redundant BR
$init['remove_redundant_brs'] = false;
$init['remove_linebreaks'] = false;
$opts = '*[*]';
$init['valid_elements'] = $opts;
$init['extended_valid_elements'] = $opts;
$init['forced_root_block'] = false;
$init['paste_as_text'] = true;
return $init;
}
add_filter( 'mesmerize_header_presets', 'mesmerize_companion_header_presets_pro_info' );
function mesmerize_companion_header_presets_pro_info( $presets ) {
if ( apply_filters( 'mesmerize_show_info_pro_messages', true ) ) {
$companion = \Mesmerize\Companion::instance();
$proPresets = $companion->themeDataPath( '/pro-only-presets.php' );
if ( file_exists( $proPresets ) ) {
$proPresets = require_once( $proPresets );
} else {
$proPresets = array();
}
$presets = array_merge( $presets, $proPresets );
}
return $presets;
}
add_action( 'cloudpress\customizer\add_assets', 'mesmerize_load_theme_customizer_scripts', 10, 3 );
function mesmerize_load_theme_customizer_scripts( $customizer, $jsUrl, $cssUrl ) {
$ver = $customizer->companion()->version;
wp_enqueue_script( 'cp-customizer-shortcodes-theme-data', $customizer->companion()->themeDataURL( '/assets/customizer/customizer-shortcodes.js' ), array( 'customizer-base' ), $ver, true );
}
function mesmerize_get_custom_mods() {
return array(
'.header-homepage .hero-title' => array(
'type' => 'data-theme',
'mod' => 'header_title',
),
'.header-homepage p.header-subtitle' => array(
'type' => 'data-theme',
'mod' => 'header_subtitle',
),
'.header-homepage p.header-subtitle2' => array(
'type' => 'data-theme',
'mod' => 'header_subtitle2',
),
'#footer-container.footer-7 .footer-description' => array(
'type' => 'data-theme',
'mod' => 'footer_content_box_text',
),
'.footer .footer-box-1 > p' => array(
'type' => 'data-theme',
'mod' => 'footer_box1_content_text',
),
'.footer .footer-box-2 > p' => array(
'type' => 'data-theme',
'mod' => 'footer_box2_content_text',
),
'.footer .footer-box-3 > p' => array(
'type' => 'data-theme',
'mod' => 'footer_box3_content_text',
),
);
}
add_filter( 'cloudpress\customizer\global_data', 'mesmerize_add_dynamic_mods_customizer_data' );
function mesmerize_add_dynamic_mods_customizer_data( $data ) {
$mesmerize_custom_mods = mesmerize_get_custom_mods();
$data['mods'] = apply_filters( 'mesmerize_dynamic_mods', $mesmerize_custom_mods );
return $data;
}
add_action(
'cloudpress\companion\activated\mesmerize',
function ( $companion ) {
/** @var \Mesmerize\Companion $companion */
$companion->_createFrontPage();
mesmerize_save_activation_time();
}
);
add_action(
'cloudpress\companion\deactivated\mesmerize',
function ( $companion ) {
/** @var \Mesmerize\Companion $companion */
$companion->restoreFrontPage();
}
);
add_filter(
'cloudpress\customizer\get_data_filter',
function ( $value, $key ) {
if ( $key === 'data:sections' && ! is_array( $value ) ) {
$value = array();
}
return $value;
},
10,
2
);
add_filter(
'wpforms_shareasale_id',
function ( $shareid ) {
$shareid = '1836921';
return $shareid;
},
PHP_INT_MAX
);
function mesmerize_save_activation_time()
{
if (!is_admin()) {
return;
}
if (!get_option('msm_companion_activation_time')) {
update_option('msm_companion_activation_time', time());
}
$theme = get_template();
$parts = explode('-', $theme);
if (count($parts) > 1 && array_pop($parts) === 'pro') {
if (!get_option('msm_companion_pro_activation_time')) {
update_option('msm_companion_pro_activation_time', time());
}
}
}