按终极会员用户角色隐藏 Woocommerce 立即购买按钮
Hide Woocommerce Buy Now button by Ultimate Member User Role
我正在尝试删除用户角色“um_member”的 Woocommerce“立即购买”按钮。
我已经能够通过 if ( is_user_logged_in() ) {
的登录用户删除按钮
但是,当我尝试使用此处的用户角色片段时:https://docs.ultimatemember.com/article/164-getrole if ( $ultimatemember->user->get_role() == ‘um_member’ ) {
我收到以下错误:Call to a member function get_role() on null
这是登录用户的完整工作代码片段:
// If User is not logged in don't allow them to purchase
if ( is_user_logged_in() ) {
} else {
//function for deleting ....
function remove_product_description_add_cart_button(){
global $product;
// Set HERE your category ID, slug or name (or an array)
$category = 'restricted';
//Remove Add to Cart button from product description of product with id 1234
if ( has_term( $category, 'product_cat', $product->id ) )
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
}
add_action('wp','remove_product_description_add_cart_button');
}
以下是我尝试实现它以通过用户角色进行限制的方式:
// If User is not logged in don’t allow them to purchase
um_fetch_user( get_current_user_id() );
if ( $ultimatemember->user->get_role_name() == 'member' ) {
} else {
//function for deleting ….
function remove_product_description_add_cart_button(){
global $product;
// Set HERE your category ID, slug or name (or an array)
$category = 'restricted';
//Remove Add to Cart button from product description of product with id 1234
if ( has_term( $category, 'product_cat', $product->id ) )
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
}
add_action('wp','remove_product_description_add_cart_button');
}
任何帮助将不胜感激。我也试过 Wordpress 上的 Ultimate Member 支持论坛,但还没有得到开发人员的任何直接回应。
我已经完全重新访问了您的代码。在没有任何保证的情况下尝试以下操作:
add_action('woocommerce_single_product_summary','non_member_remove_single_add_to_cart', 2 );
function non_member_remove_single_add_to_cart(){
global $product, $ultimatemember;
um_fetch_user( get_current_user_id() );
// Check if it's a member user role
$is_member = $ultimatemember->user->get_role() == 'member' ? true : false;
// HERE set your categories in the array (IDs, slugs or names)
$categories = array('restricted');
// Remove single Add to Cart button
if ( ! $is_member && has_term( $category, 'product_cat', $product->get_id() ) )
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
}
代码进入您的活动子主题(或活动主题)的 function.php 文件。未经测试,它可以工作。
基于这 2 个 Ultimatemember 片段代码:
谢谢@LoicTheAztec!
我最终能够获得终极会员支持,但我的原始解决方案存在两个问题。
全局变量已在昨天的 UM 2.0 主要更新中更改 - $ultimatemember->user->get_role()
现在更改为 UM()->user()->get_role()
– 他们还没有开始更改文档。
该代码仍然无法正常工作,因为每个成员都有多个角色(例如:wordpress 默认 'subscriber' 和最终成员的 'member')所以再次支持 re-worked .
这是没有我的 WooCommerce 脚本的有效解决方案:
$user = wp_get_current_user();
if ( in_array( 'um_member', (array) $user->roles ) )
{
// DO THIS IF USER IS A MEMBER
} else {
// DO THIS IF USER IS NOT A MEMBER
}
这是我用来为 non-approved 客户删除“立即购买”按钮并显示显示自定义字段的 "Restricted Products" 通知框的完整解决方案:
$user = wp_get_current_user();
if ( in_array( 'um_member', (array) $user->roles ) )
{
} else {
//function for deleting ....
function remove_product_description_add_cart_button(){
global $product;
// Set HERE your category ID, slug or name (or an array)
$category = 'restricted';
//Remove Add to Cart button from product description of product with id 1234
if ( has_term( $category, 'product_cat', $product->id ) )
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
}
add_action('wp','remove_product_description_add_cart_button');
add_action( 'woocommerce_single_product_summary', 'restrict_access', 20 );
}
function restrict_access() {
echo '<div class="restrict-access"><h4>';
the_field('notice_title' , 'option');
echo '</h4><p>';
the_field('notice_details' , 'option');
echo '</p><a class="et_pb_button" href="/restricted-product">';
the_field('notice_button_text' , 'option');
echo '</a></div>';
}
非常感谢您对此的帮助。
我正在尝试删除用户角色“um_member”的 Woocommerce“立即购买”按钮。
我已经能够通过 if ( is_user_logged_in() ) {
但是,当我尝试使用此处的用户角色片段时:https://docs.ultimatemember.com/article/164-getrole if ( $ultimatemember->user->get_role() == ‘um_member’ ) {
我收到以下错误:Call to a member function get_role() on null
这是登录用户的完整工作代码片段:
// If User is not logged in don't allow them to purchase
if ( is_user_logged_in() ) {
} else {
//function for deleting ....
function remove_product_description_add_cart_button(){
global $product;
// Set HERE your category ID, slug or name (or an array)
$category = 'restricted';
//Remove Add to Cart button from product description of product with id 1234
if ( has_term( $category, 'product_cat', $product->id ) )
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
}
add_action('wp','remove_product_description_add_cart_button');
}
以下是我尝试实现它以通过用户角色进行限制的方式:
// If User is not logged in don’t allow them to purchase
um_fetch_user( get_current_user_id() );
if ( $ultimatemember->user->get_role_name() == 'member' ) {
} else {
//function for deleting ….
function remove_product_description_add_cart_button(){
global $product;
// Set HERE your category ID, slug or name (or an array)
$category = 'restricted';
//Remove Add to Cart button from product description of product with id 1234
if ( has_term( $category, 'product_cat', $product->id ) )
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
}
add_action('wp','remove_product_description_add_cart_button');
}
任何帮助将不胜感激。我也试过 Wordpress 上的 Ultimate Member 支持论坛,但还没有得到开发人员的任何直接回应。
我已经完全重新访问了您的代码。在没有任何保证的情况下尝试以下操作:
add_action('woocommerce_single_product_summary','non_member_remove_single_add_to_cart', 2 );
function non_member_remove_single_add_to_cart(){
global $product, $ultimatemember;
um_fetch_user( get_current_user_id() );
// Check if it's a member user role
$is_member = $ultimatemember->user->get_role() == 'member' ? true : false;
// HERE set your categories in the array (IDs, slugs or names)
$categories = array('restricted');
// Remove single Add to Cart button
if ( ! $is_member && has_term( $category, 'product_cat', $product->get_id() ) )
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
}
代码进入您的活动子主题(或活动主题)的 function.php 文件。未经测试,它可以工作。
基于这 2 个 Ultimatemember 片段代码:
谢谢@LoicTheAztec!
我最终能够获得终极会员支持,但我的原始解决方案存在两个问题。
全局变量已在昨天的 UM 2.0 主要更新中更改 -
$ultimatemember->user->get_role()
现在更改为UM()->user()->get_role()
– 他们还没有开始更改文档。该代码仍然无法正常工作,因为每个成员都有多个角色(例如:wordpress 默认 'subscriber' 和最终成员的 'member')所以再次支持 re-worked .
这是没有我的 WooCommerce 脚本的有效解决方案:
$user = wp_get_current_user();
if ( in_array( 'um_member', (array) $user->roles ) )
{
// DO THIS IF USER IS A MEMBER
} else {
// DO THIS IF USER IS NOT A MEMBER
}
这是我用来为 non-approved 客户删除“立即购买”按钮并显示显示自定义字段的 "Restricted Products" 通知框的完整解决方案:
$user = wp_get_current_user();
if ( in_array( 'um_member', (array) $user->roles ) )
{
} else {
//function for deleting ....
function remove_product_description_add_cart_button(){
global $product;
// Set HERE your category ID, slug or name (or an array)
$category = 'restricted';
//Remove Add to Cart button from product description of product with id 1234
if ( has_term( $category, 'product_cat', $product->id ) )
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
}
add_action('wp','remove_product_description_add_cart_button');
add_action( 'woocommerce_single_product_summary', 'restrict_access', 20 );
}
function restrict_access() {
echo '<div class="restrict-access"><h4>';
the_field('notice_title' , 'option');
echo '</h4><p>';
the_field('notice_details' , 'option');
echo '</p><a class="et_pb_button" href="/restricted-product">';
the_field('notice_button_text' , 'option');
echo '</a></div>';
}
非常感谢您对此的帮助。