get ) ) {
return $query_args;
}
return $this->parse_loop_query_args( $widget, $query_args );
}
private function is_product_query( $widget ) {
$widget_config = $widget->get_config();
return ( ! empty( $widget_config['is_loop'] ) && 'product' === $widget->get_current_skin_id() );
}
private function parse_loop_query_args( $widget, $query_args ) {
global $wp_query;
$settings = $this->adjust_setting_for_product_renderer( $widget );
// For Products_Renderer.
if ( ! isset( $GLOBALS['post'] ) ) {
$GLOBALS['post'] = null; // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
}
$shortcode = Products_Widget::get_shortcode_object( $settings );
$parsed_query_args = $shortcode->parse_query_args();
if ( empty( $wp_query->include_field_ids_arg ) ) {
unset( $parsed_query_args['fields'] );
}
$override_various_query_args = array_filter( $query_args, function( $key ) {
return in_array( $key, [ 'posts_per_page', 'offset', 'paged' ], true );
}, ARRAY_FILTER_USE_KEY );
return wp_parse_args( $override_various_query_args, $parsed_query_args );
}
private function adjust_setting_for_product_renderer( $widget ) {
$settings = $widget->get_settings_for_display();
$query_name = $widget->get_query_name();
$unique_query_settings = array_filter( $settings, function( $key ) use ( $query_name ) {
return 0 === strpos( $key, $query_name );
}, ARRAY_FILTER_USE_KEY );
$query_settings = [];
foreach ( $unique_query_settings as $key => $value ) {
$query_settings[ 'query' . str_replace( $query_name, '', $key ) ] = $value;
}
$settings = array_merge( $settings, $query_settings );
if ( isset( $settings['posts_per_page'] ) && isset( $settings['columns'] ) ) {
$settings['rows'] = ceil( $settings['posts_per_page'] / $settings['columns'] );
}
$settings['paginate'] = 'yes';
$settings['allow_order'] = 'no';
$settings['show_result_count'] = 'no';
$settings['query_fields'] = false;
return $settings;
}
/**
* @param $post_id
* @return bool
*/
private function is_source_set_to_products( $post_id ) {
return 'product' === get_post_meta( $post_id, '_elementor_source', true );
}
/**
* @param array $config
* @return array
*/
private function add_woocommerce_widgets_to_recommended( array $config ) {
foreach ( static::RECOMMENDED_POSTS_WIDGET_NAMES as $recommended_posts_widget_name ) {
$config['panel']['widgets_settings'][ $recommended_posts_widget_name ] = [
'categories' => [ 'recommended' ],
'show_in_panel' => true,
];
}
return $config;
}
private function hide_woocommerce_widgets_in_loop_document( array $config ) {
$config['panel']['widgets_settings']['woocommerce-product-images'] = [
'show_in_panel' => false,
];
return $config;
}
private function populate_persistent_settings( array $config ) {
$config['persistent_keys'] = array_key_exists( 'persistent_keys', $config ) ?
array_merge( $config['persistent_keys'], self::WC_PERSISTENT_SITE_SETTINGS ) :
self::WC_PERSISTENT_SITE_SETTINGS;
return $config;
}
/**
* Get the base URL for assets.
*
* @return string
*/
public function get_assets_base_url(): string {
return ELEMENTOR_PRO_URL;
}
/**
* Register styles.
*
* At build time, Elementor compiles `/modules/woocommerce/assets/scss/widgets/*.scss`
* to `/assets/css/widget-*.min.css`.
*
* @return void
*/
public function register_styles(): void {
$direction_suffix = is_rtl() ? '-rtl' : '';
$widget_styles = $this->get_widgets_style_list();
$has_custom_breakpoints = Plugin::elementor()->breakpoints->has_custom_breakpoints();
foreach ( $widget_styles as $widget_style_name => $widget_has_responsive_style ) {
$should_load_responsive_css = $widget_has_responsive_style ? $has_custom_breakpoints : false;
wp_register_style(
$widget_style_name,
Plugin::get_frontend_file_url( "{$widget_style_name}{$direction_suffix}.min.css", $should_load_responsive_css ),
[ 'elementor-frontend' ],
$should_load_responsive_css ? null : ELEMENTOR_PRO_VERSION
);
}
}
private function get_widgets_style_list(): array {
return [
'widget-woocommerce-cart' => self::WIDGET_HAS_CUSTOM_BREAKPOINTS,
'widget-woocommerce-categories' => ! self::WIDGET_HAS_CUSTOM_BREAKPOINTS,
'widget-woocommerce-checkout-page' => self::WIDGET_HAS_CUSTOM_BREAKPOINTS,
'widget-woocommerce-menu-cart' => self::WIDGET_HAS_CUSTOM_BREAKPOINTS,
'widget-woocommerce-my-account' => self::WIDGET_HAS_CUSTOM_BREAKPOINTS,
'widget-woocommerce-notices' => ! self::WIDGET_HAS_CUSTOM_BREAKPOINTS,
'widget-woocommerce-product-add-to-cart' => self::WIDGET_HAS_CUSTOM_BREAKPOINTS,
'widget-woocommerce-product-additional-information' => ! self::WIDGET_HAS_CUSTOM_BREAKPOINTS,
'widget-woocommerce-product-data-tabs' => ! self::WIDGET_HAS_CUSTOM_BREAKPOINTS,
'widget-woocommerce-product-images' => ! self::WIDGET_HAS_CUSTOM_BREAKPOINTS,
'widget-woocommerce-product-meta' => ! self::WIDGET_HAS_CUSTOM_BREAKPOINTS,
'widget-woocommerce-product-price' => ! self::WIDGET_HAS_CUSTOM_BREAKPOINTS,
'widget-woocommerce-product-rating' => ! self::WIDGET_HAS_CUSTOM_BREAKPOINTS,
'widget-woocommerce-products' => ! self::WIDGET_HAS_CUSTOM_BREAKPOINTS,
'widget-woocommerce-products-archive' => self::WIDGET_HAS_CUSTOM_BREAKPOINTS,
'widget-woocommerce-purchase-summary' => self::WIDGET_HAS_CUSTOM_BREAKPOINTS,
];
}
}
Fatal error: Uncaught Error: Class "\ElementorPro\Modules\Woocommerce\Module" not found in /home/j9ajojvm0km1/public_html/bularentalsouthlandlimited.com/wp-content/plugins/elementor-pro/core/modules-manager.php:88
Stack trace:
#0 /home/j9ajojvm0km1/public_html/bularentalsouthlandlimited.com/wp-content/plugins/elementor-pro/plugin.php(372): ElementorPro\Core\Modules_Manager->__construct()
#1 /home/j9ajojvm0km1/public_html/bularentalsouthlandlimited.com/wp-includes/class-wp-hook.php(353): ElementorPro\Plugin->on_elementor_init()
#2 /home/j9ajojvm0km1/public_html/bularentalsouthlandlimited.com/wp-includes/class-wp-hook.php(377): WP_Hook->apply_filters()
#3 /home/j9ajojvm0km1/public_html/bularentalsouthlandlimited.com/wp-includes/plugin.php(523): WP_Hook->do_action()
#4 /home/j9ajojvm0km1/public_html/bularentalsouthlandlimited.com/wp-content/plugins/elementor/includes/plugin.php(634): do_action()
#5 /home/j9ajojvm0km1/public_html/bularentalsouthlandlimited.com/wp-includes/class-wp-hook.php(353): Elementor\Plugin->init()
#6 /home/j9ajojvm0km1/public_html/bularentalsouthlandlimited.com/wp-includes/class-wp-hook.php(377): WP_Hook->apply_filters()
#7 /home/j9ajojvm0km1/public_html/bularentalsouthlandlimited.com/wp-includes/plugin.php(523): WP_Hook->do_action()
#8 /home/j9ajojvm0km1/public_html/bularentalsouthlandlimited.com/wp-settings.php(779): do_action()
#9 /home/j9ajojvm0km1/public_html/bularentalsouthlandlimited.com/wp-config.php(112): require_once('/home/j9ajojvm0...')
#10 /home/j9ajojvm0km1/public_html/bularentalsouthlandlimited.com/wp-load.php(50): require_once('/home/j9ajojvm0...')
#11 /home/j9ajojvm0km1/public_html/bularentalsouthlandlimited.com/wp-blog-header.php(13): require_once('/home/j9ajojvm0...')
#12 /home/j9ajojvm0km1/public_html/bularentalsouthlandlimited.com/index.php(17): require('/home/j9ajojvm0...')
#13 {main}
thrown in /home/j9ajojvm0km1/public_html/bularentalsouthlandlimited.com/wp-content/plugins/elementor-pro/core/modules-manager.php on line 88