rtsb_name = esc_html__( 'Product Images', 'shopbuilder' ); $this->rtsb_base = 'rtsb-product-image'; parent::__construct( $data, $args ); add_action( 'wp_footer', 'woocommerce_photoswipe' ); $this->the_hooks(); } /** * Widget Field * * @return array */ public function widget_fields() { return ProductImagesSettings::widget_fields( $this ); } /** * Widget Field. * * @return void */ public function init_scripts() { ?> get_settings_for_display(); $show_thumbnails = ! empty( $controllers['show_thumbnails'] ) ? $controllers['show_thumbnails'] : false; if ( ! $show_thumbnails ) { $key = array_search( 'rtwpvg-has-product-thumbnail', $classes ); if ( $key ) { unset( $classes[ $key ] ); add_filter( 'rtwpvg_show_product_thumbnail_slider', '__return_false', 20 ); } } return $classes; } public function thumbnail_slider_js_options( $options ) { if ( isset( $options['spaceBetween'] ) ) { $controllers = $this->get_settings_for_display(); $options['spaceBetween'] = $controllers['gallery_thumbs_column_gap']['size']; } return $options; } public function thumbnails_columns( $column ) { $controllers = $this->get_settings_for_display(); $column = ! empty( $controllers['gallery_thumbs_column']['size'] ) ? $controllers['gallery_thumbs_column']['size'] : $column; return $column; } public function thumbnails_columns_sm( $column ) { $controllers = $this->get_settings_for_display(); $column = ! empty( $controllers['gallery_thumbs_column_tablet']['size'] ) ? $controllers['gallery_thumbs_column_tablet']['size'] : $column; return $column; } public function thumbnails_columns_xs( $column ) { $controllers = $this->get_settings_for_display(); $column = ! empty( $controllers['gallery_thumbs_column_mobile']['size'] ) ? $controllers['gallery_thumbs_column_mobile']['size'] : $column; return $column; } /** * @param $position * * @return mixed */ public function thumbnail_position( $position ) { if ( ! function_exists( 'rtwpvg' ) || ! rtwpvg()->active_pro() || ! ( BuilderFns::is_product() || BuilderFns::is_quick_views_page() ) ) { return $position; } $controllers = $this->get_settings_for_display(); $show_thumbnails = ! empty( $controllers['show_thumbnails'] ) ? $controllers['show_thumbnails'] : false; if ( ! $show_thumbnails ) { add_filter( 'rtwpvg_show_product_thumbnail_slider', '__return_false', 20 ); return 'bottom'; } return ! empty( $controllers['image_layout'] ) ? $controllers['image_layout'] : 'bottom'; } /** * Render Function * * @return void */ protected function render() { global $product, $post; $_product = $product; $product = Fns::get_product(); $controllers = $this->get_settings_for_display(); if ( empty( $controllers['show_module_badges'] ) ) { add_filter( 'rtsb/module/badges/show', '__return_false', 99 ); } $this->theme_support(); $controllers['lightbox_icon'] = Fns::icons_manager( $controllers['lightbox_icon'] ); $data = [ 'template' => 'elementor/single-product/product-images', 'controllers' => $controllers, ]; $this->the_hooks( $controllers ); Fns::load_template( $data['template'], $data ); if ( $this->is_builder_mode() ) { $this->init_scripts(); } if ( empty( $controllers['show_module_badges'] ) ) { remove_filter( 'rtsb/module/badges/show', '__return_false', 99 ); } $this->theme_support( 'render_reset' ); $product = $_product; // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited } }