关于woocommerce photo review 插件的代码报错修复
woo photo review 是一个独立站用户评价插件,集成评价领取优惠券功能。但是插件存在问题,经过我对代码的不断优化最终解决问题。
适配环境:wordpress版本:6.7.2
php版本:8.1 mysql版本:5.7.43
插件下载链接:
woocommerce-photo-reviews-v1.3.10
(具体是哪个插件报错,我忘记了)
报错内容大概是:
报错:Warning: Undefined array key “cols_gap” in /www/wwwroot/dome.com/wp-content/plugins/woocommerce-photo-reviews/plugins/elementor/reviews-widget.php on line 819 Warning: Undefined array key “grid_bg_color” in /www/wwwroot/dome.com/wp-content/plugins/woocommerce-photo-reviews/plugins/elementor/reviews-widget.php on line 821 Warning: Undefined array key “grid_item_bg_color” in /www/wwwroot/dome.com/wp-content/plugins/woocommerce-photo-reviews/plugins/elementor/reviews-widget.php on line 822 Warning: Undefined array key “grid_item_border_color” in /www/wwwroot/dome.com/wp-content/plugins/woocommerce-photo-reviews/plugins/elementor/reviews-widget.php on line 822 Warning: Undefined array key “text_color” in /www/wwwroot/dome.com/wp-content/plugins/woocommerce-photo-reviews/plugins/elementor/reviews-widget.php on line 823 Warning: Undefined array key “star_color” in /www/wwwroot/dome.com/wp-content/plugins/woocommerce-photo-reviews/plugins/elementor/reviews-widget.php on line 823 Warning: Undefined array key “pagination_position” in /www/wwwroot/dome.com/wp-content/plugins/woocommerce-photo-reviews/plugins/elementor/reviews-widget.php on line 827 Warning: Undefined array key “area_border_color” in /www/wwwroot/dome.com/wp-content/plugins/woocommerce-photo-reviews/plugins/elementor/reviews-widget.php on line 831 Warning: Undefined array key “area_bg_color” in /www/wwwroot/dome.com/wp-content/plugins/woocommerce-photo-reviews/plugins/elementor/reviews-widget.php on line 832 Warning: Undefined array key “button_color” in /www/wwwroot/dome.com/wp-content/plugins/woocommerce-photo-reviews/plugins/elementor/reviews-widget.php on line 832 Warning: Undefined array key “button_bg_color” in /www/wwwroot/dome.com/wp-content/plugins/woocommerce-photo-reviews/plugins/elementor/reviews-widget.php on line 832 Warning: Undefined array key “button_border_color” in /www/wwwroot/dome.com/wp-content/plugins/woocommerce-photo-reviews/plugins/elementor/reviews-widget.php on line 832 Warning: Undefined array key “rating_count_bar_color” in /www/wwwroot/dome.com/wp-content/plugins/woocommerce-photo-reviews/plugins/elementor/reviews-widget.php on line 833 Warning: Undefined array key “verified_color” in /www/wwwroot/dome.com/wp-content/plugins/woocommerce-photo-reviews/plugins/elementor/reviews-widget.php on line 833
原因是代码尝试访问一个不存在的数组键。这可能是由于该数组的某些键没有被正确设置,或者在某些条件下没有传递这些值。
在806行找对应的代码,并将其修改为
public function get_shortcode_text() {
$settings = $this->get_settings_for_display();
// 获取并设置默认值
$products = is_array($settings[‘products’]) ? implode( ‘,’, $settings[‘products’] ) : (is_string($settings[‘products’]) ? $settings[‘products’] : ”);
$products_status = is_array($settings[‘products_status’]) ? implode( ‘,’, $settings[‘products_status’] ) : (is_string($settings[‘products_status’]) ? $settings[‘products_status’] : ”);
$product_cat = is_array($settings[‘product_cat’]) ? implode( ‘,’, $settings[‘product_cat’] ) : (is_string($settings[‘product_cat’]) ? $settings[‘product_cat’] : ”);
$orderby = is_array($settings[‘orderby’]) ? implode( ‘,’, $settings[‘orderby’] ) : (is_string($settings[‘orderby’]) ? $settings[‘orderby’] : ”);
$ratings = is_array($settings[‘ratings’]) ? implode( ‘,’, $settings[‘ratings’] ) : (is_string($settings[‘ratings’]) ? $settings[‘ratings’] : ”);
// 设置 cols 默认值
$cols = isset($settings[‘cols’]) ? $settings[‘cols’] : (isset($settings[‘cols_desktop’]) ? $settings[‘cols_desktop’] : 3);
$cols_mobile = isset($settings[‘cols_mobile’]) ? $settings[‘cols_mobile’] : 1;
// 为可能未设置的项提供默认值
$pll_all_languages = isset($settings[‘pll_all_languages’]) ? $settings[‘pll_all_languages’] : ‘off’;
$wpml_all_languages = isset($settings[‘wpml_all_languages’]) ? $settings[‘wpml_all_languages’] : ‘off’;
$cols_gap = isset($settings[‘cols_gap’]) ? $settings[‘cols_gap’] : ’20px’; // 默认值
$grid_bg_color = isset($settings[‘grid_bg_color’]) ? $settings[‘grid_bg_color’] : ‘#f4f4f4’; // 默认值
$grid_item_bg_color = isset($settings[‘grid_item_bg_color’]) ? $settings[‘grid_item_bg_color’] : ‘#ffffff’; // 默认值
$grid_item_border_color = isset($settings[‘grid_item_border_color’]) ? $settings[‘grid_item_border_color’] : ‘#e1e1e1’; // 默认值
$text_color = isset($settings[‘text_color’]) ? $settings[‘text_color’] : ‘#333333’; // 默认值
$star_color = isset($settings[‘star_color’]) ? $settings[‘star_color’] : ‘#FFD700’; // 默认值
$pagination_position = isset($settings[‘pagination_position’]) ? $settings[‘pagination_position’] : ‘bottom’; // 默认值
$area_border_color = isset($settings[‘area_border_color’]) ? $settings[‘area_border_color’] : ‘#cccccc’; // 默认值
$area_bg_color = isset($settings[‘area_bg_color’]) ? $settings[‘area_bg_color’] : ‘#f9f9f9’; // 默认值
$button_color = isset($settings[‘button_color’]) ? $settings[‘button_color’] : ‘#ffffff’; // 默认值
$button_bg_color = isset($settings[‘button_bg_color’]) ? $settings[‘button_bg_color’] : ‘#0073e6’; // 默认值
$button_border_color = isset($settings[‘button_border_color’]) ? $settings[‘button_border_color’] : ‘#005bb5’; // 默认值
$rating_count_bar_color = isset($settings[‘rating_count_bar_color’]) ? $settings[‘rating_count_bar_color’] : ‘#000000’; // 默认值
$verified_color = isset($settings[‘verified_color’]) ? $settings[‘verified_color’] : ‘#00cc66′; // 默认值
return “[wc_photo_reviews_shortcode is_elementor=’yes’ comments_per_page='{$settings[‘comments_per_page’]}’
cols='{$cols}’ cols_mobile='{$cols_mobile}’ cols_gap='{$cols_gap}’
use_single_product='{$settings[‘use_single_product’]}’ products='{$products}’
products_status='{$products_status}’ grid_bg_color='{$grid_bg_color}’
grid_item_bg_color='{$grid_item_bg_color}’ grid_item_border_color='{$grid_item_border_color}’
text_color='{$text_color}’ star_color='{$star_color}’ product_cat='{$product_cat}’ order='{$settings[‘order’]}’
orderby='{$orderby}’ show_product='{$settings[‘show_product’]}’ filter='{$settings[‘filter_enable’]}’ pagination='{$settings[‘pagination’]}’
pagination_ajax='{$settings[‘pagination_ajax’]}’ loadmore_button='{$settings[‘loadmore_button’]}’ pagination_next='{$settings[‘pagination_next’]}’
pagination_pre='{$settings[‘pagination_pre’]}’ filter_default_image='{$settings[‘filter_default_image’]}’ filter_default_verified='{$settings[‘filter_default_verified’]}’
filter_default_rating='{$settings[‘filter_default_rating’]}’ pagination_position='{$pagination_position}’ conditional_tag='{$settings[‘conditional_tag’]}’
custom_css='{$settings[‘custom_css’]}’ masonry_popup='{$settings[‘masonry_popup’]}’ image_popup='{$settings[‘image_popup’]}’ ratings='{$ratings}’
mobile='{$settings[‘mobile’]}’ style='{$settings[‘style’]}’ is_slide='{$settings[‘is_slide’]}’
enable_box_shadow='{$settings[‘enable_box_shadow’]}’ full_screen_mobile='{$settings[‘full_screen_mobile’]}’
overall_rating='{$settings[‘overall_rating’]}’ rating_count='{$settings[‘rating_count’]}’ only_images='{$settings[‘only_images’]}’ area_border_color='{$area_border_color}’
area_bg_color='{$area_bg_color}’ button_color='{$button_color}’ button_bg_color='{$button_bg_color}’ button_border_color='{$button_border_color}’
rating_count_bar_color='{$rating_count_bar_color}’ verified_color='{$verified_color}’ wpml_all_languages='{$wpml_all_languages}’ pll_all_languages='{$pll_all_languages}’]”;
}
protected function render() {
echo do_shortcode( $this->get_shortcode_text() );
}
public function render_plain_content() {
echo wp_kses_post( $this->get_shortcode_text() );
}
}
直接粘贴进去即可完美修复。
船长跨境资源 » 关于woocommerce photo review 插件的代码报错修复