Soporte » Plugins y Hacks » WooCommerce » Error Fatal por Cambio de Precio

  • Hola buen día, estoy teniendo problemas al crear un nuevo post o subir un producto, el contexto es el siguiente, hace un tiempo compre un plugin personalizado y parece ser la razón del conflicto, intente contactar al desarrollador pero no fue posible, no soy programador por lo que dentro de mi poco conocimiento no puedo apreciar donde esta el problema, el error es el siguiente:

    CRITICAL Uncaught Error: Call to a member function get_price() on null in /home/runcloud/webapps/DoggysMarket/wp-content/plugins/wayra-discount-surcharge/public/class-wayra-discount-surcharge-public.php:158
    Stack trace:
    
    #0 wp-includes/class-wp-hook.php(308): Wayra_Discount_Surcharge_Public->wayra_wds_after_product_price()
    #1 wp-includes/plugin.php(205): WP_Hook->apply_filters()
    #2 wp-content/plugins/woocommerce/includes/abstracts/abstract-wc-product.php(1872): apply_filters()
    #3 wp-content/plugins/woocommerce/packages/woocommerce-blocks/src/StoreApi/Schemas/V1/ProductSchema.php(461): WC_Product->get_price_html()
    #4 [internal function]: Automattic\WooCommerce\StoreApi\Schemas\V1\ProductSchema->get_item_response()
    #5 wp-content/plugins/woocommerce/packages/woocommerce-blocks/src/StoreApi/Schemas/V1/AbstractSchema.php(261): array_map()
    #6 wp-content/plugins/woocommerce/packages/woocommerce-blocks/src/StoreApi/Schemas/V1/CartSchema.php(353): Automattic\WooCommerce\StoreApi\Schemas\V1\AbstractSchema->get_item_responses_from_schema()
    #7 wp-content/plugins/woocommerce/packages/woocommerce-blocks/src/StoreApi/Routes/V1/Cart.php(50): Automattic\WooCommerce\StoreApi\Schemas\V1\CartSchema->get_item_response()
    #8 wp-content/plugins/woocommerce/packages/woocommerce-blocks/src/StoreApi/Routes/V1/AbstractRoute.php(109): Automattic\WooCommerce\StoreApi\Routes\V1\Cart->get_route_response()
    #9 wp-content/plugins/woocommerce/packages/woocommerce-blocks/src/StoreApi/Routes/V1/AbstractCartRoute.php(102): Automattic\WooCommerce\StoreApi\Routes\V1\AbstractRoute->get_response()
    #10 wp-includes/rest-api/class-wp-rest-server.php(1171): Automattic\WooCommerce\StoreApi\Routes\V1\AbstractCartRoute->get_response()
    #11 wp-includes/rest-api/class-wp-rest-server.php(1018): WP_REST_Server->respond_to_request()
    #12 wp-includes/rest-api.php(535): WP_REST_Server->dispatch()
    #13 wp-includes/rest-api.php(2884): rest_do_request()
    #14 wp-content/plugins/woocommerce/packages/woocommerce-blocks/src/Assets/AssetDataRegistry.php(323): rest_preload_api_request()
    #15 wp-content/plugins/woocommerce/packages/woocommerce-blocks/src/BlockTypes/AllProducts.php(40): Automattic\WooCommerce\Blocks\Assets\AssetDataRegistry->hydrate_api_request()
    #16 wp-content/plugins/woocommerce/packages/woocommerce-blocks/src/BlockTypes/AllProducts.php(33): Automattic\WooCommerce\Blocks\BlockTypes\AllProducts->hydrate_from_api()
    #17 wp-content/plugins/woocommerce/packages/woocommerce-blocks/src/BlockTypes/AbstractBlock.php(100): Automattic\WooCommerce\Blocks\BlockTypes\AllProducts->enqueue_data()
    #18 wp-includes/class-wp-hook.php(308): Automattic\WooCommerce\Blocks\BlockTypes\AbstractBlock->enqueue_editor_assets()
    #19 wp-includes/class-wp-hook.php(332): WP_Hook->apply_filters()
    #20 wp-includes/plugin.php(517): WP_Hook->do_action()
    #21 wp-admin/edit-form-blocks.php(272): do_action()
    #22 wp-admin/post.php(187): require('...')
    #23 {main}
      thrown
      thrown en /wp-content/plugins/wayra-discount-surcharge/public/class-wayra-discount-surcharge-public.php en la línea 158

    y el fragmento de código al que hace referencia es el siguiente:

    // Show second price on Store and related products
    		
    		$show_on_store = $this->config['show_on_store'] ?? false;
    		if ( ( ( is_product() && $wp->query_vars['product'] == $product->get_slug() )||$show_on_store ) && isset( WC()->session ) && 'no' != $show_discount_or_surcharge && 'no' != $show_discount_or_surcharge_cat ) { 
    			
    			$display_tax_mode = get_option( 'woocommerce_tax_display_shop' ); // incl = show tax on product price on product page
    
    			$product_price = $product->get_price();
    			if ( wc_tax_enabled() ) {
    				if ( ! wc_prices_include_tax() && 'incl' == $display_tax_mode ) {
    					$product_price = wc_get_price_including_tax( $product );
    				} elseif ( wc_prices_include_tax() && 'excl' == $display_tax_mode ) {
    					$product_price = wc_get_price_excluding_tax( $product );
    				}
    			}
    			
    			$difference = $this->wayra_wds_get_difference( $product_price );
    			$fixed_price = $product_price + $difference;
    
    			$price .= '<div class="wds">';
    			
    			if ( ! empty( $this->config['text_after_price'] ) ) {
    				$price .= '<div class="wds-text first">' . $this->config['text_after_price'] . '</div>';
    			}
    				
    			if ( $product->is_type( 'variable' ) ) {

    como mencionaba, no soy desarrollador por lo que no tengo muy claro si realmente hay algún error en el código, pero de lo que he logrado investigar no logro apreciar cual sea el problema, agradezco la ayuda si alguien me puede indicar si definitivamente hay algo mal en el código o si quizá es mejor opción no seguir contando con este plugin, gracias a todos y feliz día.

    • Este debate fue modificado hace 2 semanas, 2 días por ivan9506.
    • Este debate fue modificado hace 1 semana, 5 días por Jose Luis.
    • Este debate fue modificado hace 1 semana, 5 días por Jose Luis. Razón: Etiquetar correctamente el código

    La página con la que necesito ayuda: [accede para ver el enlace]

Viendo 1 respuesta (de un total de 1)
  • Moderador Jose Luis

    (@jose64)

    Hola.

    Bienvenido al foro de soporte. Si no cuentas con soporte del desarrollador lo mejor es que busques una alternativa al plugin, aunque ahora soluciones el problema a la larga tendrás otros, aparte de que solo ves los fallos mayores, no ves si hay problemas de seguridad.

    Comenta si tienes alguna duda y, por favor, recuerda marcar el debate como resuelto, así nos ayudas a mantener el foro al día.

Viendo 1 respuesta (de un total de 1)
  • Debes estar registrado para responder a este debate.