我得到了一个500错误的产品模板,我粘贴的短代码。
我创建了一个短码显示视频,如果用户购买了特定的产品.
视频URL来自ACF字段。
// Shortcode for Video from ACF
function wpc_elementor_shortcode( $atts ) {
global $product;
if ( ! is_user_logged_in() ) return;
if ( wc_customer_bought_product( '', get_current_user_id(), $product->get_id() ) ) {
echo get_field('video_tutorial');
}
}
add_shortcode( 'purchase_video_tutorial', 'wpc_elementor_shortcode');
在前端,它可以工作,但在elementor构建器中,如果放置了短代码[purchase_video*_*tutorial],则显示500错误。
以上代码调试显示错误:
Uncaught Error: Call to a member function get_id() on null in ..... functions.php:133
我需要在php代码中添加什么来修复elementor pagebuilder的这个错误?
1条答案
按热度按时间bttbmeg01#
验证意味着检查您正在访问的对象是否不为空,如下所示:
同样,短码应该返回字符串,而不是打印它
到
另外,
wc_customer_bought_product
的第一个参数是客户的电子邮件