This problem popped up. If you turn off WooCommerce Dynamic Pricing, all pages are displayed normally.
After a brief search, I found that the reason is that if the product falls under the condition specified in WooCommerce Dynamic Pricing, in the $ product variable for some reason, the value is NULL.
Fatal error: Uncaught Error: Call to a member function get_name () on null in /wp-content/plugins/woocommerce/includes/abstracts/abstract-wc-shipping-method.php:2 Stack trace: # 0 / wp-content /plugins/woocommerce/includes/shipping/legacy-local-pickup/class-wc-shipping-legacy-local-pickup.php(79): WC_Shipping_Method-> add_rate (Array) # 1 / wp-content / plugins / woocommerce / includes / abstracts / abstract-wc-shipping-method.php (205): WC_Shipping_Legacy_Local_Pickup-> calculate_shipping (Array) # 2 /wp-content/plugins/woocommerce/includes/class-wc-shipping.php (362): WC_Shipping_Method- > get_rates_for_package (Array) # 3 / wp-content/plugins/woocommerce/includes/class-wc-shipping.php(251): WC_Shipping-> calculate_shipping_for_package (Array, 0) # 4 / wp-content / plugins / woocommerce / includes /class-wc-cart.php(1444): WC_Shipping-> calculat in /wp-content/plugins/woocommerce/includes/abstracts/abstract-wc-shipping-method.php on line 277