Support » Plugin: FOMO & Social Proof Notifications by TrustPulse - Best WordPress FOMO Plugin » Causes REST API Fatal errors with deleted products

  • Resolved Brian Henry


    The Trustpulse plugin tries to modify the WooCommerce REST API responses. As it is processing orders, it tries to use the order’s line items’ product ids to fetch the products in order to get metadata to add to the response.

    If the product has been deleted, the following error occurs:

    PHP Fatal error:  Uncaught Error: Call to a member function get_permalink() on bool in /var/www/html/wp-content/plugins/trustpulse-api/TPAPI/WooCommerce.php:95
    Stack trace:
    #0 /var/www/html/wp-includes/class-wp-hook.php(303): TPAPI_WooCommerce::add_tp_product_data_to_wc_api(Object(WP_REST_Response), Object(Automattic\WooCommerce\Admin\Overrides\Order), Object(WP_REST_Request))
    #1 /var/www/html/wp-includes/plugin.php(189): WP_Hook->apply_filters(Object(WP_REST_Response), Array)
    #2 /var/www/html/wp-content/plugins/woocommerce/includes/rest-api/Controllers/Version2/class-wc-rest-orders-v2-controller.php(420): apply_filters('woocommerce_res...', Object(WP_REST_Response), Object(Automattic\WooCommerce\Admin\Overrides\Order), Object(WP_REST_Request))
    #3 /var/www/html/wp-content/plugins/woocommerce/includes/rest-api/Controllers/Version3/class-wc-rest-crud-controller.php(391): WC_REST_Orders_V2_Controller->prepare_object_for_response(Object(Automattic\WooCommerce\Admin\Overrides\Order), Object(WP_REST_Request))
    #4 /var/www/html/wp-inc in /var/www/html/wp-content/plugins/trustpulse-api/TPAPI/WooCommerce.php on line 95

    The solution is to check a valid product was returned before attempting to access its properties, in TPAPI/WooCommerce.php:93

    // Product URL
    if ( function_exists('wc_get_product') ) {
    	$wc_product = wc_get_product( $product['product_id'] );
    	if ( $wc_product instanceof WC_Product ) {
    		$permalink                                              = $wc_product->get_permalink();
    		$response->data['line_items'][ $key ]['tp_product_url'] = $permalink;

Viewing 1 replies (of 1 total)
Viewing 1 replies (of 1 total)
  • The topic ‘Causes REST API Fatal errors with deleted products’ is closed to new replies.