File: /var/www/bellecouture/wp-content/themes/yena/framework/functions/theme-functions.php
<?php
/**
* This file includes helper functions used throughout the theme.
*
*/
if (!defined('ABSPATH')) {
exit; // Exit if accessed directly
}
if(!function_exists('yena_add_meta_into_head_tag')){
function yena_add_meta_into_head_tag(){
do_action('yena/action/head');
}
}
/**
* Adds classes to the body tag
*
* @since 1.0.0
*/
if (!function_exists('yena_body_classes')) {
function yena_body_classes($classes) {
$classes[] = is_rtl() ? 'rtl' : 'ltr';
$classes[] = 'yena-body';
$classes[] = 'lastudio-yena';
$site_layout = yena_get_site_layout();
$header_layout = yena_get_header_layout();
$page_title_bar_layout = yena_get_page_header_layout();
$main_fullwidth = yena_get_theme_option_by_context('main_full_width', 'no');
$header_full_width = yena_get_theme_option_by_context('header_full_width', 'no');
$header_sticky = yena_get_theme_option_by_context('header_sticky', 'no');
$header_transparency = yena_get_theme_option_by_context('header_transparency', 'no');
$footer_full_width = yena_get_theme_option_by_context('footer_full_width', 'no');
$body_boxed = yena_get_option('body_boxed', 'no');
$mobile_footer_bar = (yena_get_option('enable_header_mb_footer_bar', 'no') == 'yes') ? true : false;
$mobile_footer_bar_items = yena_get_option('header_mb_footer_bar_component', array());
$custom_body_class = yena_get_theme_option_by_context('body_class', '');
if (!empty($custom_body_class)) {
$classes[] = esc_attr($custom_body_class);
}
if ($body_boxed == 'yes') {
$classes[] = 'body-boxed';
}
if (is_404()) {
$classes[] = 'body-col-1c';
$classes['page_title_bar'] = 'page-title-vhide';
$header_transparency_404 = yena_get_option('header_transparency_404');
if($header_transparency_404 == 'yes'){
$classes[] = 'enable-header-transparency';
}
elseif ($header_transparency_404 == 'no'){
$header_transparency = 'no';
}
}
else {
$classes[] = esc_attr('body-' . $site_layout);
$classes['page_title_bar'] = esc_attr('page-title-v' . $page_title_bar_layout);
}
$header_transparency_blog = yena_get_option('header_transparency_blog' );
if( yena_is_blog() ){
if($header_transparency_blog != 'inherit'){
$header_transparency = $header_transparency_blog;
}
}
$classes[] = 'header-v-' . esc_attr($header_layout);
if ($header_transparency == 'yes') {
$classes[] = 'enable-header-transparency';
}
if ($header_sticky != 'no') {
$classes[] = 'enable-header-sticky';
if ($header_sticky == 'auto') {
$classes[] = 'header-sticky-type-auto';
}
}
if (is_singular('page')) {
global $post;
if (strpos($post->post_content, 'la_wishlist') !== false) {
$classes[] = 'woocommerce-page';
$classes[] = 'woocommerce-page-wishlist';
}
if (strpos($post->post_content, 'la_compare') !== false) {
$classes[] = 'woocommerce-page';
$classes[] = 'woocommerce-compare';
}
if (strpos($post->post_content, 'dokan-') !== false) {
$classes[] = 'woocommerce-page';
$classes[] = 'woocommerce-dokan-page';
}
}
if ($header_full_width == 'yes') {
$classes[] = 'enable-header-fullwidth';
}
if ($main_fullwidth == 'yes') {
$classes[] = 'enable-main-fullwidth';
}
if ($footer_full_width == 'yes') {
$classes[] = 'enable-footer-fullwidth';
}
if (yena_get_option('page_loading_animation', 'off') == 'on') {
$classes[] = 'site-loading';
$classes[] = 'active_page_loading';
}
if ($mobile_footer_bar && !empty($mobile_footer_bar_items)) {
$classes[] = 'enable-footer-bars';
$classes[] = 'footer-bars--visible-' . esc_attr(yena_get_option('enable_header_mb_footer_bar_sticky', 'always'));
}
if ($site_layout == 'col-1c') {
$blog_small_layout = yena_get_option('blog_small_layout', 'off');
if ( is_singular('post')) {
$single_small_layout_global = yena_get_option('single_small_layout', 'off');
$single_small_layout = yena_get_post_meta(get_queried_object_id(), 'small_layout');
if ($single_small_layout == 'on') {
$classes[] = 'enable-small-layout';
}
else {
if ($single_small_layout_global == 'on' && $single_small_layout != 'off') {
$classes[] = 'enable-small-layout';
}
else {
if ($blog_small_layout == 'on') {
$classes[] = 'enable-small-layout';
}
}
}
}
elseif ( is_category() || is_tag()) {
$blog_archive_small_layout = yena_get_term_meta(get_queried_object_id(), 'small_layout');
if ($blog_archive_small_layout == 'on') {
$classes[] = 'enable-small-layout';
}
else {
if ($blog_small_layout == 'on' && $blog_archive_small_layout != 'off') {
$classes[] = 'enable-small-layout';
}
}
}
elseif ( is_home() ) {
$single_small_layout = yena_get_post_meta(get_option( 'page_for_posts', true ), 'small_layout');
if ( $single_small_layout == 'on') {
$classes[] = 'enable-small-layout';
}
elseif ($blog_small_layout == 'on' && $single_small_layout != 'off'){
$classes[] = 'enable-small-layout';
}
}
}
if (function_exists('dokan_get_option')) {
$page_id = dokan_get_option('dashboard', 'dokan_pages');
if ($page_id) {
if (dokan_is_store_page() || is_page($page_id) || (get_query_var('edit') && is_singular('product'))) {
$classes[] = 'woocommerce-page';
}
}
}
if (is_404()) {
$content_404 = yena_get_option('404_page_content');
if (!empty($content_404)) {
$classes[] = 'has-customized-404';
}
else{
$classes[] = 'has-default-404';
}
}
if (class_exists('LAHB', false)) {
$data = false;
if (!empty($header_layout) && $header_layout != 'inherit') {
if (!is_admin() && !isset($_GET['lastudio_header_builder'])) {
$data = LAHB_Helper::get_data_frontend_component_with_preset($header_layout, $data);
}
}
$data = $data ? $data : LAHB_Helper::get_data_frontend_components();
if (isset($data['desktop-view']['row1']['settings']['header_type'])) {
$header_type = $data['desktop-view']['row1']['settings']['header_type'];
if ($header_type == 'vertical') {
$vertical_component_id = $data['desktop-view']['row1']['settings']['uniqueId'];
$vertical_toggle = false;
if (!empty($data['components'][$vertical_component_id]['vertical_toggle']) && $data['components'][$vertical_component_id]['vertical_toggle'] == 'true') {
$vertical_toggle = true;
}
$classes[] = 'header-type-vertical';
if ($vertical_toggle) {
$classes[] = 'header-type-vertical--toggle';
}
else {
$classes[] = 'header-type-vertical--default';
}
}
}
}
if(is_singular()){
if(get_post_meta( get_the_ID(), '_elementor_edit_mode', true )){
$classes[] = 'page-use-builder';
}
else{
if(is_singular(array('post', 'page'))){
$classes[] = 'page-use-gutenberg';
}
}
}
if(yena_is_blog() || is_singular(array('post'))) {
$classes[] = 'yena-is-blog';
}
if( yena_string_to_bool(yena_get_option('woocommerce_show_action_btn_mobile', 'off')) ){
$classes[] = 'active-prod_btn_mb';
}
// Return classes
return $classes;
}
}
if (!function_exists('yena_render_header')) {
function yena_render_header() {
if (yena_get_theme_option_by_context('hide_header') == 'yes') {
return;
}
get_template_part('partials/header/layout');
}
}
if (!function_exists('yena_render_page_header')) {
function yena_render_page_header() {
$value = yena_get_page_header_layout();
if (!empty($value) && $value != 'hide') {
get_template_part('partials/page_header/layout', $value);
}
}
}
if (!function_exists('yena_render_sidebar')){
function yena_render_sidebar (){
get_sidebar();
}
}
if (!function_exists('yena_render_footer')) {
function yena_render_footer() {
if (yena_get_theme_option_by_context('hide_footer') == 'yes') {
return;
}
$value = yena_get_footer_layout();
if (!empty($value) && $value != 'inherit') {
$value = absint($value);
if (!empty($value) && get_post_type($value) == 'elementor_library') {
if (!function_exists('elementor_theme_do_location') || !elementor_theme_do_location('footer')) {
?>
<footer id="footer" class="<?php echo esc_attr(yena_footer_classes()); ?>"<?php yena_schema_markup('footer'); ?>>
<?php do_action('yena/action/before_footer_inner'); ?>
<div id="footer-inner">
<div class="container"><?php
echo do_shortcode('[elementor-template id="' . $value . '"]');
?></div>
</div><!-- #footer-inner -->
<?php do_action('yena/action/after_footer_inner'); ?>
</footer><!-- #footer -->
<?php
}
}
}
else {
get_template_part('partials/footer/layout');
}
}
}
if (!function_exists('yena_render_footer_searchform_overlay')){
function yena_render_footer_searchform_overlay(){
get_template_part('partials/footer/searchform-overlay');
}
}
if (!function_exists('yena_render_footer_cartwidget_overlay')){
function yena_render_footer_cartwidget_overlay(){
get_template_part('partials/footer/cart-overlay');
}
}
if (!function_exists('yena_render_footer_newsletter_popup')){
function yena_render_footer_newsletter_popup(){
get_template_part('partials/footer/newsletter');
}
}
if (!function_exists('yena_render_footer_handheld')){
function yena_render_footer_handheld(){
get_template_part('partials/footer/handheld');
}
}
if(!function_exists('yena_add_extra_data_into_head')){
function yena_add_extra_data_into_head(){
if( $la_custom_css = yena_get_option('la_custom_css') ){
echo sprintf( '<%1$s id="yena-custom-css">%2$s</%1$s>', 'style', $la_custom_css);
}
if( $header_js = yena_get_option('header_js') ){
echo sprintf( '<%1$s>%2$s</%1$s>', 'script', $header_js);
}
}
}
if(!function_exists('yena_add_pageloader_icon')){
function yena_add_pageloader_icon(){
if( yena_string_to_bool( yena_get_option('page_loading_animation', 'off') ) ){
$loading_style = yena_get_option('page_loading_style', 1);
if($loading_style == 'custom'){
if(($img = yena_get_option('page_loading_custom')) && !empty($img['id']) && wp_attachment_is_image($img['id']) ){
add_filter('yena/filter/enable_image_lazyload', '__return_false', 10000);
add_filter('wp_lazy_loading_enabled', '__return_false', 10000);
echo '<div class="la-image-loading spinner-custom"><div class="content"><div class="la-loader">'. wp_get_attachment_image($img['id'], 'full') .'</div><div class="la-loader-ss"></div></div></div>';
yena_deactive_filter('yena/filter/enable_image_lazyload', '__return_false', 10000);
yena_deactive_filter('wp_lazy_loading_enabled', '__return_false', 10000);
}
else{
echo '<div class="la-image-loading"><div class="content"><div class="la-loader spinner1"></div><div class="la-loader-ss"></div></div></div>';
}
}
else{
echo '<div class="la-image-loading"><div class="content"><div class="la-loader spinner'.esc_attr($loading_style).'"><div class="dot1"></div><div class="dot2"></div><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div><div class="cube1"></div><div class="cube2"></div><div class="cube3"></div><div class="cube4"></div></div><div class="la-loader-ss"></div></div></div>';
}
}
}
}
if(!function_exists('yena_render_footer_custom_js')){
function yena_render_footer_custom_js(){
if( $footer_js = yena_get_option('footer_js') ){
echo sprintf( '<%1$s>%2$s</%1$s>', 'script', $footer_js);
}
}
}
if(!function_exists('yena_add_lazyload_to_image_tag')){
function yena_add_lazyload_to_image_tag( $attr ){
$enable_lazy = yena_string_to_bool(yena_get_option('activate_lazyload'));
if( apply_filters('yena/filter/enable_image_lazyload', $enable_lazy) && (!is_admin() && !isset($_REQUEST['la_doing_ajax']) && isset($attr['src'])) ) {
$attr['data-src'] = $attr['src'];
if(isset($attr['srcset'])){
$attr['data-srcset'] = $attr['srcset'];
$attr['srcset'] = get_theme_file_uri('/assets/images/blank.gif');
}
if(isset($attr['sizes'])){
$attr['data-sizes'] = $attr['sizes'];
unset($attr['sizes']);
}
$attr['src'] = get_theme_file_uri('/assets/images/blank.gif');
$old_class = isset($attr['class']) ? $attr['class'] : '';
if(strpos($old_class, 'la-lazyload-image') === false){
$attr['class'] = $old_class . ' la-lazyload-image';
}
}
return $attr;
}
}
/**
* Override page title bar from global settings
* What we need to do now is
* 1. checking in single content types
* 1.1) post
* 1.2) product
* 1.3) portfolio
* 2. checking in archives
* 2.1) shop
* 2.2) portfolio
*
* TIPS: List functions will be use to check
* `is_product`, `is_single_la_portfolio`, `is_shop`, `is_woocommerce`, `is_product_taxonomy`, `is_archive_la_portfolio`, `is_tax_la_portfolio`
*/
if(!function_exists('yena_override_page_title_bar_from_context')){
function yena_override_page_title_bar_from_context( $value, $key ){
$array_key_allow = array(
'page_title_bar_style',
'page_title_bar_layout',
'page_title_bar_background',
'page_title_bar_border',
'page_title_bar_space',
'page_title_bar_heading_fonts',
'page_title_bar_breadcrumb_fonts',
'page_title_bar_heading_color',
'page_title_bar_text_color',
'page_title_bar_link_color',
'page_title_bar_link_hover_color'
);
$array_key_alternative = array(
'page_title_bar_layout',
'page_title_bar_background',
'page_title_bar_border',
'page_title_bar_space',
'page_title_bar_heading_fonts',
'page_title_bar_breadcrumb_fonts',
'page_title_bar_heading_color',
'page_title_bar_text_color',
'page_title_bar_link_color',
'page_title_bar_link_hover_color'
);
/**
* Firstly, we need to check the `$key` input
*/
if( !in_array($key, $array_key_allow) ){
return $value;
}
/**
* Secondary, we need to check the `$context` input
*/
if( !is_singular() && !is_tax(get_object_taxonomies( 'la_portfolio' )) && !is_post_type_archive('la_portfolio') && !yena_is_blog()){
return $value;
}
$func_name = 'yena_get_post_meta';
$queried_object_id = get_queried_object_id();
if( is_tax(get_object_taxonomies( 'la_portfolio' ) ) || is_tag() || is_category() ){
$func_name = 'yena_get_term_meta';
}
if ( 'page_title_bar_layout' == $key ) {
$page_title_bar_layout = call_user_func($func_name, $queried_object_id, $key);
if($page_title_bar_layout && $page_title_bar_layout != 'inherit'){
return $page_title_bar_layout;
}
}
if( 'yes' == call_user_func($func_name ,$queried_object_id, 'page_title_bar_style') && in_array($key, $array_key_alternative) ){
return $value;
}
$key_override = $new_key = false;
if( is_singular('la_portfolio') ) {
$key_override = 'single_portfolio_override_page_title_bar';
$new_key = 'single_portfolio_' . $key;
}
elseif( is_singular('post') ) {
$key_override = 'single_post_override_page_title_bar';
$new_key = 'single_post_' . $key;
}
elseif ( is_tax(get_object_taxonomies( 'la_portfolio' )) || is_post_type_archive('la_portfolio') ) {
$key_override = 'archive_portfolio_override_page_title_bar';
$new_key = 'archive_portfolio_' . $key;
}
elseif( yena_is_blog() ){
$key_override = 'blog_post_override_page_title_bar';
$new_key = 'blog_post_' . $key;
}
if(false != $key_override){
if( 'on' == yena_get_option($key_override, 'off') ){
return yena_get_option($new_key, $value);
}
}
return $value;
}
}
if(!function_exists('yena_override_post_navigation_template')){
function yena_override_post_navigation_template( $output, $format, $link, $post, $adjacent ){
$image = '';
if(has_post_thumbnail($post)){
$image = sprintf('<span class="nav_pnpp__image" style="background-image: url(\'%1$s\');"></span>', get_the_post_thumbnail_url($post));
}
$output = str_replace( '%image', $image, $output );
$output = str_replace( '%author', get_the_author(), $output );
return $output;
}
}
if(!function_exists('yena_override_sidebar_name_from_context')){
function yena_override_sidebar_name_from_context( $sidebar ){
if( is_search() ) {
if( ( $sidebar_search = yena_get_option('search_sidebar', $sidebar) ) && !empty($sidebar_search) ) {
return $sidebar_search;
}
}
if( is_tag() || is_category() ) {
$sidebar = yena_get_option('blog_archive_sidebar', $sidebar );
if( yena_string_to_bool( yena_get_option('blog_archive_global_sidebar', false) ) ){
/*
* Return global sidebar if option will be enable
* We don't need more checking in context
*/
return $sidebar;
}
if( ( $_sidebar = yena_get_term_meta(get_queried_object_id(), 'sidebar') ) && !empty( $_sidebar ) ) {
return $_sidebar;
}
}
if(is_singular('post')){
$sidebar = yena_get_option('posts_sidebar', $sidebar);
if( yena_string_to_bool( yena_get_option('posts_global_sidebar', false) ) ){
/*
* Return global sidebar if option will be enable
* We don't need more checking in context
*/
return $sidebar;
}
if( ( $_sidebar = yena_get_post_meta(get_queried_object_id(), 'sidebar') ) && !empty( $_sidebar ) ) {
return $_sidebar;
}
}
if ( post_type_exists('la_portfolio') ) {
if ( is_tax() && is_tax( get_object_taxonomies( 'la_portfolio' ) ) ) {
$sidebar = yena_get_option('portfolio_archive_sidebar', $sidebar);
if( yena_string_to_bool(yena_get_option('portfolio_archive_global_sidebar', false)) ){
/*
* Return global sidebar if option will be enable
* We don't need more checking in context
*/
return $sidebar;
}
if( ( $_sidebar = yena_get_term_meta(get_queried_object_id(), 'sidebar') ) && !empty( $_sidebar ) ) {
return $_sidebar;
}
}
if(is_singular('la_portfolio')){
$sidebar = yena_get_option('portfolio_sidebar', $sidebar);
if( yena_string_to_bool(yena_get_option('portfolio_global_sidebar', false)) ){
/*
* Return global sidebar if option will be enable
* We don't need more checking in context
*/
return $sidebar;
}
if( ( $_sidebar = yena_get_post_meta(get_queried_object_id(), 'sidebar') ) && !empty( $_sidebar ) ) {
return $_sidebar;
}
}
}
if(is_page()){
$sidebar = yena_get_option('pages_sidebar', $sidebar);
if( yena_string_to_bool(yena_get_option('pages_global_sidebar', false)) ){
/*
* Return global sidebar if option will be enable
* We don't need more checking in context
*/
return $sidebar;
}
if( ( $_sidebar = yena_get_post_meta(get_queried_object_id(), 'sidebar') ) && !empty( $_sidebar ) ) {
return $_sidebar;
}
}
return $sidebar;
}
}
if(!function_exists('yena_render_related_posts')){
function yena_render_related_posts(){
$move_related_to_bottom = yena_string_to_bool(yena_get_option('move_blog_related_to_bottom', 'off'));
if( is_singular('post') && $move_related_to_bottom){
get_template_part('partials/singular/related-posts');
}
}
}
if(!function_exists('yena_render_comment_for_page')){
function yena_render_comment_for_page(){
wp_reset_postdata();
if(is_page() && (comments_open() || get_comments_number())){
comments_template();
}
}
}
if(!function_exists('yena_change_excerpt_length')){
function yena_change_excerpt_length( $length ){
$excerpt_length = absint(yena_get_option('blog_excerpt_length', 25));
if($excerpt_length > 0){
return $excerpt_length;
}
return $length;
}
}
if(!function_exists('yena_filter_show_breadcrumbs')){
function yena_filter_show_breadcrumbs( $visible ){
return $visible;
}
}
if(!function_exists('yena_filter_page_title')){
function yena_filter_page_title( $visible ){
if(is_singular('post') && yena_get_option('blog_post_page_title', 'blog') == 'none'){
$visible = false;
}
return $visible;
}
}
if(!function_exists('yena_override_portfolio_content_type_args')){
function yena_override_portfolio_content_type_args( $args, $post_type_name ) {
if($post_type_name == 'la_portfolio'){
$label = esc_html(yena_get_option('portfolio_custom_name'));
$label2 = esc_html(yena_get_option('portfolio_custom_name2'));
$slug = sanitize_title(yena_get_option('portfolio_custom_slug'));
if(!empty($label)){
$args['label'] = $label;
$args['labels']['name'] = $label;
}
if(!empty($label2)){
$args['labels']['singular_name'] = $label2;
}
if(!empty($slug)){
if(!empty($args['rewrite'])){
$args['rewrite']['slug'] = $slug;
}
else{
$args['rewrite'] = array( 'slug' => $slug );
}
}
}
return $args;
}
}
if(!function_exists('yena_override_portfolio_tax_type_args')){
function yena_override_portfolio_tax_type_args( $args, $tax_name ) {
if( $tax_name == 'la_portfolio_category' ) {
$label = esc_html(yena_get_option('portfolio_cat_custom_name'));
$label2 = esc_html(yena_get_option('portfolio_cat_custom_name2'));
$slug = sanitize_title(yena_get_option('portfolio_cat_custom_slug'));
if(!empty($label)){
$args['labels']['name'] = $label;
}
if(!empty($label2)){
$args['labels']['singular_name'] = $label2;
}
if(!empty($slug)){
if(!empty($args['rewrite'])){
$args['rewrite']['slug'] = $slug;
}
else{
$args['rewrite'] = array( 'slug' => $slug );
}
}
}
else if( $tax_name == 'la_portfolio_skill' ) {
$label = esc_html(yena_get_option('portfolio_skill_custom_name'));
$label2 = esc_html(yena_get_option('portfolio_skill_custom_name2'));
$slug = sanitize_title(yena_get_option('portfolio_skill_custom_slug'));
if(!empty($label)){
$args['labels']['name'] = $label;
}
if(!empty($label2)){
$args['labels']['singular_name'] = $label2;
}
if(!empty($slug)){
if(!empty($args['rewrite'])){
$args['rewrite']['slug'] = $slug;
}
else{
$args['rewrite'] = array( 'slug' => $slug );
}
}
}
return $args;
}
}
if(!function_exists('yena_add_custom_block_to_single_product_page')){
function yena_add_custom_block_to_single_product_page(){
$position_detect = array(
'pos1' => array(
'hook_name' => 'woocommerce_single_product_summary',
'priority' => 30 /* After Cart */
),
'pos2' => array(
'hook_name' => 'woocommerce_single_product_summary',
'priority' => 40 /* After Meta */
),
'pos3' => array(
'hook_name' => 'woocommerce_single_product_summary',
'priority' => 10 /* After Price */
),
'pos4' => array(
'hook_name' => 'woocommerce_single_product_summary',
'priority' => 5 /* After Title */
),
'pos5' => array(
'hook_name' => 'woocommerce_single_product_summary',
'priority' => 20 /* After Description */
),
'pos6' => array(
'hook_name' => 'yena/action/after_woocommerce_single_product_summary',
'priority' => 10 /* Beside Summary */
),
'pos7' => array(
'hook_name' => 'yena/action/before_wc_tabs',
'priority' => 10 /* Before Tabs */
),
'pos8' => array(
'hook_name' => 'yena/action/after_wc_tabs',
'priority' => 10 /* Before Tabs */
),
'pos9' => array(
'hook_name' => 'woocommerce_after_single_product_summary',
'priority' => 30 /* After Related */
),
'pos10' => array(
'hook_name' => 'woocommerce_after_single_product_summary',
'priority' => 15 /* After Up-sells */
),
'pos11' => array(
'hook_name' => 'yena/action/before_main',
'priority' => 10 /* After Main Wrap */
),
'pos12' => array(
'hook_name' => 'yena/action/after_main',
'priority' => 10 /* After Main Wrap */
)
);
if(yena_string_to_bool(yena_get_option('woo_enable_custom_block_single_product')) && is_singular('product')){
$blocks = yena_get_option('woo_custom_block_single_product');
if(!empty($blocks) && is_array($blocks)){
foreach ($blocks as $k => $block){
$block_content = !empty($block['content']) ? $block['content'] : '';
$block_position = !empty($block['position']) ? $block['position'] : '';
if(!empty($block_content) && !empty($block_position) && is_array($position_detect[$block_position]) ){
$hooks = $position_detect[$block_position];
$hook_name = $hooks['hook_name'];
$priority = $hooks['priority'];
add_action( $hook_name, function() use( $block, $hook_name, $priority ) { yena_callback_func_to_show_custom_block($block, $hook_name, $priority); }, $priority );
}
}
}
}
}
add_action('wp_head', 'yena_add_custom_block_to_single_product_page');
}
if(!function_exists('yena_render_custom_block')){
function yena_render_custom_block(){
$blocks = yena_get_option('la_custom_blocks', []);
if(empty($blocks)){
return false;
}
foreach ($blocks as $id => $block){
if(empty($block['conditions']) || empty($block['content']) || empty($block['position'])){
continue;
}
$conditions_priority = [];
$excludes = [];
$conditions = $block['conditions'];
foreach ($conditions as $id2 => $condition){
$include = $condition['type'];
$name = $condition['name'];
$sub_name = isset($condition[$name]) ? $condition[$name] : '';
$sub_id = '';
$condition_pass = false;
if($name == 'archive'){
if($sub_name == 'author'){
$sub_id = $condition['author'];
}
elseif( $sub_name == 'category' || $sub_name == 'child_of_category' || $sub_name == 'any_child_of_category'){
$sub_id = $condition['category'];
}
elseif($sub_name == 'post_tag'){
$sub_id = $condition['tag'];
}
}
elseif ($name == 'singular'){
if($sub_name == 'post'){
$sub_id = $condition['singular_post'];
}
elseif ($sub_name == 'page'){
$sub_id = $condition['singular_page'];
}
elseif ($sub_name == 'la_portfolio'){
$sub_id = $condition['singular_la_portfolio'];
}
elseif ($sub_name == 'in_category' || $sub_name == 'in_category_children'){
$sub_id = $condition['singular_category'];
}
elseif ($sub_name == 'in_post_tag'){
$sub_id = $condition['singular_tag'];
}
elseif ($sub_name == 'post_by_author' || $sub_name == 'page_by_author' || $sub_name == 'la_portfolio_by_author' || $sub_name == 'by_author'){
$sub_id = $condition['singular_author'];
}
elseif ($sub_name == 'in_la_portfolio_category'){
$sub_id = $condition['singular_la_portfolio_category'];
}
}
elseif ($name == 'woocommerce'){
if($sub_name == 'product_cat' || $sub_name == 'in_product_cat' || $sub_name == 'in_product_cat_children'){
$sub_id = $condition['wc_product_cat'];
}
elseif($sub_name == 'product_tag' || $sub_name == 'in_product_tag'){
$sub_id = $condition['wc_product_tag'];
}
elseif ($sub_name == 'product_by_author'){
$sub_id = $condition['wc_author'];
}
}
$is_include = 'include' === $include;
if($name == 'general'){
$condition_pass = true;
}
elseif ($name == 'archive'){
if(is_archive()){
$condition_pass = true;
}
}
elseif($name == 'singular'){
if(is_singular()){
$condition_pass = true;
}
if(($sub_name == 'blog_page' || $sub_name == 'front_page') && ((is_front_page() && is_home()) || (!is_front_page() && is_home()))){
$condition_pass = true;
}
}
elseif($name == 'woocommerce'){
if( (function_exists('WC') && (is_woocommerce())) || (is_search() && 'product' === get_query_var( 'post_type' ))){
$condition_pass = true;
}
}
if($condition_pass && !empty($sub_name)){
$condition_pass = false;
if($sub_name == 'author'){
if(empty($sub_id) || (!empty($sub_id) && is_author($sub_id))){
$condition_pass = true;
}
}
if($sub_name == 'date'){
if(is_date()){
$condition_pass = true;
}
}
if($sub_name == 'post_archive'){
if(is_post_type_archive('post')){
$condition_pass = true;
}
}
if($sub_name == 'category'){
if(empty($sub_id) || (!empty($sub_id) && is_category($sub_id))){
$condition_pass = true;
}
}
if($sub_name == 'child_of_category'){
if(is_category()){
if(empty($sub_id)){
$condition_pass = true;
}
else{
$current = get_queried_object();
if($sub_id == $current->parent){
$condition_pass = true;
}
}
}
}
if($sub_name == 'any_child_of_category'){
if(is_category()){
if(empty($sub_id)){
$condition_pass = true;
}
else{
$current = get_queried_object();
if($sub_id == $current->parent){
$condition_pass = true;
}
if($current->parent > 0){
$current_parent = get_term_by( 'id', $current->parent, 'category' );
if($sub_id == $current_parent->parent){
$condition_pass = true;
}
}
}
}
}
if($sub_name == 'post_tag'){
if(empty($sub_id) || (!empty($sub_id) && is_tag($sub_id))){
$condition_pass = true;
}
}
if($sub_name == 'front_page'){
if(is_front_page()){
$condition_pass = true;
}
}
if($sub_name == 'blog_page') {
if ((is_front_page() && is_home()) || (!is_front_page() && is_home())) {
$condition_pass = true;
}
}
if( is_singular() && in_array(get_post_type(get_the_ID()), ['post', 'page', 'la_portfolio']) ){
if($sub_name == 'post' || $sub_name == 'page' || ($sub_name == 'la_portfolio' && post_type_exists('la_portfolio'))){
if(empty($sub_id)){
if(is_singular($sub_name)){
$condition_pass = true;
}
}
else{
if(is_single($sub_id)){
$condition_pass = true;
}
}
}
if($sub_name == 'in_category'){
if(empty($sub_id)){
$condition_pass = true;
}
else{
if(has_term($sub_id, 'category')){
$condition_pass = true;
}
}
}
if($sub_name == 'in_category_children'){
if(empty($sub_id)){
$condition_pass = true;
}
else{
$child_terms = get_term_children( $sub_id, 'category' );
if(! empty( $child_terms ) && has_term( $child_terms, 'category' )){
$condition_pass = true;
}
}
}
if($sub_name == 'in_post_tag'){
if(empty($sub_id)){
$condition_pass = true;
}
else{
if(has_term($sub_id, 'post_tag')){
$condition_pass = true;
}
}
}
if($sub_name == 'post_by_author' || $sub_name == 'page_by_author' || $sub_name == 'la_portfolio_by_author' || $sub_name == 'by_author'){
if(empty($sub_id)){
$condition_pass = true;
}
else{
if(get_post_field( 'post_author' ) == $sub_id){
$condition_pass = true;
}
}
}
if($sub_name == 'in_la_portfolio_category' && taxonomy_exists('in_la_portfolio_category')){
if(empty($sub_id)){
$condition_pass = true;
}
else{
if(is_tax('la_portfolio_category', $sub_id)){
$condition_pass = true;
}
}
}
if($sub_name == 'child_of'){
if(empty($sub_id)){
$condition_pass = true;
}
else{
$parent_id = wp_get_post_parent_id( get_the_ID() );
if( ( 0 == $sub_id && 0 < $parent_id ) || ( $parent_id == $sub_id ) ){
$condition_pass = true;
}
}
}
if($sub_name == 'any_child_of'){
if(empty($sub_id)){
$condition_pass = true;
}
else{
$parents = get_post_ancestors( get_the_ID() );
if( ( 0 === $sub_id && ! empty( $parents ) ) || in_array( $sub_id, $parents ) ){
$condition_pass = true;
}
}
}
}
if(function_exists('WC')){
if($sub_name == 'product_archive'){
if(is_shop() || is_product_taxonomy() || (is_search() && 'product' === get_query_var( 'post_type' ))){
$condition_pass = true;
}
}
if($sub_name == 'shop_page'){
if(is_shop()){
$condition_pass = true;
}
}
if($sub_name == 'product_search'){
if(is_search() && 'product' === get_query_var( 'post_type' )){
$condition_pass = true;
}
}
if($sub_name == 'product_cat'){
if( is_product_category() && ( (empty($sub_id)) || ( !empty($sub_id) && is_product_category($sub_id)) ) ){
$condition_pass = true;
}
if( is_product_tag() && ( (empty($sub_id)) || ( !empty($sub_id) && is_product_tag($sub_id)) ) ){
$condition_pass = true;
}
}
if(is_product()){
if($sub_name == 'product'){
if( (empty($sub_id)) || ( !empty($sub_id) && is_single($sub_id)) ){
$condition_pass = true;
}
}
if($sub_name == 'product_by_author'){
if( (empty($sub_id)) || ( !empty($sub_id) && get_post_field( 'post_author' ) == $sub_id ) ){
$condition_pass = true;
}
}
if($sub_name == 'in_product_tag'){
if( (empty($sub_id)) || ( !empty($sub_id) && has_term($sub_id, 'product_tag')) ){
$condition_pass = true;
}
}
if($sub_name == 'in_product_cat'){
if( (empty($sub_id)) || ( !empty($sub_id) && has_term($sub_id, 'product_cat')) ){
$condition_pass = true;
}
}
if($sub_name == 'in_product_cat_children'){
if(empty($sub_id)){
$condition_pass = true;
}
else{
$child_terms = get_term_children( $sub_id, 'product_cat' );
if(! empty( $child_terms ) && has_term( $child_terms, 'product_cat' )){
$condition_pass = true;
}
}
}
}
}
}
if ($sub_name == 'not_found404'){
if(is_404()){
$condition_pass = true;
}
}
if($condition_pass){
if ( $is_include ) {
$conditions_priority[$id] = $id;
}
else{
$excludes[] = $id;
}
}
}
if(!empty($excludes)){
foreach ( $excludes as $exclude_id ) {
unset( $conditions_priority[ $exclude_id ] );
}
}
if(!empty($conditions_priority)){
$priority = 10;
$hook_name = 'yena/action/' . $block['position'];
add_action( $hook_name, function() use( $block, $hook_name, $priority ) { yena_callback_func_to_show_custom_block($block, $hook_name, $priority); }, $priority );
}
}
}
}
if(!function_exists('yena_setup_post_per_page_for_portfolio')){
function yena_setup_post_per_page_for_portfolio( $query ){
if ( is_admin() || ! $query->is_main_query() ) {
return;
}
if ( is_post_type_archive( 'la_portfolio' ) || (is_tax() && is_tax(get_object_taxonomies( 'la_portfolio' ) ))) {
$query->set( 'posts_per_page', yena_get_option('portfolio_per_page', 9) );
}
}
}