get( 'use_native_templates' ) ) { add_filter( 'wc_get_template', array( $this, 'force_wc_templates' ), 10, 2 ); } if ( 'yes' === jet_woo_builder_shop_settings()->get( 'custom_shop_page' ) ) { add_filter( 'template_include', array( $this, 'set_shop_page_template' ), 12 ); } if ( 'yes' === jet_woo_builder_shop_settings()->get( 'custom_taxonomy_template' ) ) { add_action( 'init', array( $this, 'taxonomy_meta' ), 99 ); add_filter( 'template_include', array( $this, 'set_taxonomy_page_template' ), 12 ); } // Set blank page template for editing product content with Elementor add_action( 'template_include', array( $this, 'set_product_template' ), 9999 ); add_action( 'init', array( $this, 'product_meta' ), 99 ); add_filter( 'jet-woo-builder/custom-single-template', array( $this, 'force_preview_template' ) ); add_filter( 'jet-woo-builder/integration/doc-type', array( $this, 'force_preview_doc_type' ) ); add_filter( 'jet-woo-builder/integration/doc-type', array( $this, 'force_product_doc_type' ) ); add_filter( 'woocommerce_output_related_products_args', array( $this, 'set_related_products_output_count' ) ); add_filter( 'woocommerce_upsell_display_args', array( $this, 'set_up_sells_products_output_count' ) ); add_filter( 'woocommerce_cross_sells_total', array( $this, 'set_cross_sells_products_output_count' ) ); add_filter( 'woocommerce_product_loop_start', array( $this, 'set_archive_template_custom_columns' ) ); // Shop Template Hooks add_action( 'jet-woo-builder/woocommerce/before-main-content', 'woocommerce_output_content_wrapper', 10 ); add_action( 'jet-woo-builder/woocommerce/after-main-content', 'woocommerce_output_content_wrapper_end', 10 ); add_filter( 'jet-woo-builder/render-callback/custom-args', array( $this, 'get_archive_category_args' ) ); //Products Navigation Hooks add_filter( 'previous_posts_link_attributes', [ $this, 'set_previous_product_link_class' ] ); add_filter( 'next_posts_link_attributes', [ $this, 'set_next_product_link_class' ] ); add_action( 'wp_enqueue_scripts', array( $this, 'maybe_enqueue_single_template_css' ) ); //Ajax single add to cart if ( 'yes' === jet_woo_builder_shop_settings()->get( 'use_ajax_add_to_cart' ) ) { add_action( 'wp_enqueue_scripts', array( $this, 'woocommerce_ajax_single_add_to_cart_js' ), 99 ); add_action( 'wp_ajax_woocommerce_ajax_add_to_cart', array( $this, 'woocommerce_ajax_single_add_to_cart' ) ); add_action( 'wp_ajax_nopriv_woocommerce_ajax_add_to_cart', array( $this, 'woocommerce_ajax_single_add_to_cart' ) ); } //Default woocommerce styles in quick view popup add_filter( 'jet-popup/widgets/woocommerce-styles', array( $this, 'get_quick_view_woocommerce_styles'), 10, 1 ); } /** * Enqueue Single Template Styles */ public function maybe_enqueue_single_template_css() { $current_template = $this->get_custom_single_template(); if ( !is_product() ){ return; } if ( ! $current_template ) { return; } if ( class_exists( 'Elementor\Core\Files\CSS\Post' ) ) { $css_file = new Elementor\Core\Files\CSS\Post( $current_template ); } else { $css_file = new Elementor\Post_CSS_File( $current_template ); } $css_file->enqueue(); } /** * Initialize template metabox * * @return void */ public function product_meta() { new Cherry_X_Post_Meta( array( 'id' => 'template-settings', 'title' => esc_html__( 'Jet Woo Builder Template Settings', 'jet-woo-builder' ), 'page' => array( 'product' ), 'context' => 'side', 'priority' => 'low', 'callback_args' => false, 'builder_cb' => array( jet_woo_builder_post_type(), 'get_builder' ), 'fields' => array( '_jet_woo_template' => array( 'type' => 'select', 'element' => 'control', 'options' => false, 'options_callback' => array( $this, 'get_single_templates' ), 'label' => esc_html__( 'Custom Template', 'jet-woo-builder' ), 'sanitize_callback' => 'esc_attr', ), '_template_type' => array( 'type' => 'select', 'element' => 'control', 'default' => 'default', 'options' => array( 'default' => esc_html__( 'Default', 'jet-woo-builder' ), 'canvas' => esc_html__( 'Canvas', 'jet-woo-builder' ), 'full_width' => esc_html__( 'Full Width', 'jet-woo-builder' ), ), 'label' => esc_html__( 'Template Type', 'jet-woo-builder' ), 'sanitize_callback' => 'esc_attr', ), ), ) ); } /** * Initialize, edit and update JetWoo Builder templates meta box. * * @return void */ public function taxonomy_meta() { if( ! is_admin() ){ return; } $args = array( 'public' => true ); $output = 'objects'; $taxonomies = get_taxonomies( $args, $output ); foreach ( $taxonomies as $taxonomy ) { if ( $taxonomy->name === 'product_cat' || $taxonomy->name === 'product_tag' ) { // Add fields in taxonomy create form add_action( $taxonomy->name . '_add_form_fields', array( $this, 'taxonomy_add_new_meta_field' ), 10, 1 ); // Add fields in taxonomy edit form add_action( $taxonomy->name . '_edit_form_fields', array( $this, 'taxonomy_edit_meta_field' ), 10, 1 ); // Process edit form fields add_action( 'edited_' . $taxonomy->name, array( $this, 'save_taxonomy_custom_meta' ), 10, 1 ); // Process create form fields add_action( 'create_' . $taxonomy->name, array( $this, 'save_taxonomy_custom_meta' ), 10, 1 ); } } } /** * Add fields in taxonomy create form * * @return void */ public function taxonomy_add_new_meta_field() { $templates = $this->get_shop_templates(); ?>

term_id; $templates = $this->get_shop_templates(); $jet_woo_builder_template = get_term_meta($term_id, 'jet_woo_builder_template', true); ?>

get_current_loop() ){ return $content; } $settings = get_post_meta( $this->get_custom_archive_template(), '_elementor_page_settings', true ); $settings_category = get_post_meta( $this->get_custom_archive_category_template(), '_elementor_page_settings', true ); $use_custom_columns = isset( $settings['use_custom_template_columns'] ) ? $settings['use_custom_template_columns'] : ''; $use_custom_categories_columns = isset( $settings_category['use_custom_template_category_columns'] ) ? $settings_category['use_custom_template_category_columns'] : ''; $classes = array( 'products' ); $classes_cat = array( 'products' ); $content_categories = ''; if ( ! $settings && ! $settings_category ){ return $content; } if ( 'yes' === $use_custom_categories_columns ) { $columns_cat = isset( $settings_category['template_category_columns_count'] ) ? $settings_category['template_category_columns_count'] : 4; $columns_cat_tablet = isset( $settings_category['template_category_columns_count_tablet'] ) ? $settings_category['template_category_columns_count_tablet'] : 2; $columns_cat_mobile = isset( $settings_category['template_category_columns_count_mobile'] ) ? $settings_category['template_category_columns_count_mobile'] : 1; array_push( $classes_cat, 'jet-woo-builder-cat-columns-' . $columns_cat ); array_push( $classes_cat, 'jet-woo-builder-cat-columns-tab-' . $columns_cat_tablet ); array_push( $classes_cat, 'jet-woo-builder-cat-columns-mob-' . $columns_cat_mobile ); } if ( 'yes' === $use_custom_columns ) { $columns = isset( $settings['template_columns_count'] ) ? $settings['template_columns_count'] : 4; $columns_tablet = isset( $settings['template_columns_count_tablet'] ) ? $settings['template_columns_count_tablet'] : 2; $columns_mobile = isset( $settings['template_columns_count_mobile'] ) ? $settings['template_columns_count_mobile'] : 1; array_push( $classes, 'jet-woo-builder-columns-' . $columns ); array_push( $classes, 'jet-woo-builder-columns-tab-' . $columns_tablet ); array_push( $classes, 'jet-woo-builder-columns-mob-' . $columns_mobile ); } remove_filter( 'woocommerce_product_loop_start', 'woocommerce_maybe_show_product_subcategories' ); $product_subcategories = woocommerce_maybe_show_product_subcategories(); if ( ! empty( $product_subcategories ) ) { $classes_cat = implode( ' ', $classes_cat ); if ( 'yes' === $use_custom_categories_columns ) { $before = sprintf( ''; } else { $before = ''; } $content_categories = $before . woocommerce_maybe_show_product_subcategories() . $after; } if ( 'yes' === $use_custom_columns ) { $classes = implode( ' ', $classes ); $content = sprintf( '