嗯,我在回答我的问题。
正如@MilanPetrovic在评论中提到的,这很容易做到。只需创建短代码并检查用户是否购买了特定的产品。
代码如下:
/**
* [wcr_shortcode description]
* @param array pid product id from short code
* @return content shortcode content if user bought product
*/
function wcr_shortcode($atts = [], $content = null, $tag = \'\')
{
// normalize attribute keys, lowercase
$atts = array_change_key_case((array) $atts, CASE_LOWER);
// start output
$o = \'\';
// start box
$o .= \'<div class="wcr-box">\';
$current_user = wp_get_current_user();
if ( current_user_can(\'administrator\') || wc_customer_bought_product($current_user->email, $current_user->ID, $atts[\'pid\'])) {
// enclosing tags
if (!is_null($content)) {
// secure output by executing the_content filter hook on $content
$o .= apply_filters(\'the_content\', $content);
}
} else {
// User doesn\'t bought this product and not an administator
}
// end box
$o .= \'</div>\';
// return output
return $o;
}
add_shortcode(\'wcr\', \'wcr_shortcode\');
短代码用法示例:
[wcr pid="72"]
This content only show for users that bought product with the id #72
[/wcr]
参考文献
Shortcodes with Parameters