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?