3

I use this function via a snippets plugin to add some functionality to my woocommerce Wordpress site:

    add_shortcode( 'show_ship_class', 'wpse_295878_shipping_banner' );
function wpse_295878_shipping_banner() {
    $product = wc_get_product();

    if ($product->get_shipping_class()){
        $shipping_class = $product->get_shipping_class();

        switch ( $shipping_class ) {
        case 'dsk2':
            return '<div class="shipdelay"><p>This item typically ships in 2-5 business days</p></div>';
            break;
        case 'dsk':
            return '<div class="shipdelay"><p>This item typically ships in 1-3 business days</p></div>';
            break;
    }   
            } 
    else {
           return;     
            }
}

I am getting these errors in my error log while another plugin is running:

PHP Fatal error:  Uncaught Error: Call to a member function get_shipping_class() on bool in /home/m01hurl/public_html/wp-content/plugins/insert-php/includes/class.execute.snippet.php(635) : eval()'d code:5
Stack trace:
#0 /home/m01hurl/public_html/wp-includes/shortcodes.php(356): wpse_295878_shipping_banner('', '', 'show_ship_class')
#1 [internal function]: do_shortcode_tag(Array)
#2 /home/m01hurl/public_html/wp-includes/shortcodes.php(228): preg_replace_callback('/\\[(\\[?)(show_s...', 'do_shortcode_ta...', '<!-- wp:woobuil...')
#3 /home/m01hurl/public_html/wp-content/plugins/media-cleaner/classes/core.php(264): do_shortcode('<!-- wp:woobuil...')
#4 /home/m01hurl/public_html/wp-content/plugins/media-cleaner/classes/parsers/common.php(103): Meow_WPMC_Core->get_urls_from_html('<!-- wp:woobuil...')
#5 /home/m01hurl/public_html/wp-includes/class-wp-hook.php(307): MeowApps_WPMC_Parser_Common->scan_post('<!-- wp:woobuil...', '36805')
#6 /home/m01hurl/public_html/wp-includes/class-wp-hook.php(331): WP_Hook->apply_filters('', Array)
 in /home/m01hurl/public_html/wp-content/plugins/insert-php/includes/class.execute.snippet.php(635) : eval()'d code on line 5

I assume it is because I whack-a-moled this function together and did something wrong that other code has issue with while accessing the site via the rest-api.

My question to you real programmers is is this something I did wrong in my function?

0 Answers0