我用各种各样的产品建立了Woocommerce。
这些产品在一个属性上都有可能值为1kg、2kg和5kg的变化。
我还创建了一个“Aziende”用户组。我想一些产品的变化,只显示“阿齐恩德”的客户。我不想让其他客户看到这些变化。
例如:Aziende客户可以看到选项“1kg、2kg、5kg”,而其他客户角色只能看到1kg选项。
这在WooCommerce中可能吗?
对如果覆盖文件woocommerce/templates/single product/add to cart/variable。php
您可以找到变体选择框的代码。
在那里你可以做这样的事情:
首先,在处理角色时,我总是包含这个片段:
function user_has_role( $role, $user_id = null ) {
if ( is_numeric( $user_id ) )
$user = get_userdata( $user_id );
else
$user = wp_get_current_user();
if ( empty( $user ) )
return false;
return in_array( $role, (array) $user->roles );
}
因此,它可以用作:
if(user_has_role("Aziende")){
//do stuff
}
现在有了这个函数,并且知道要更改哪个模板,你应该能够在那个文件中做一些事情。它可以沿着这个:
// Get terms if this is a taxonomy - ordered
if ( taxonomy_exists( $name ) ) {
$terms = wc_get_product_terms( $post->ID, $name, array( 'fields' => 'all' ) );
foreach ( $terms as $term ) {
if ( ! in_array( $term->slug, $options ) ) {
continue;
}
if($name == 'pa_weight' && $term->slug != '1kg' ) { // or whatever your attribute is called, and whatever the attribute term is called.
if(!user_has_role('aziende'){
continue;
}
}
echo '<option value="' . esc_attr( $term->slug ) . '" ' . selected( sanitize_title( $selected_value ), sanitize_title( $term->slug ), false ) . '>' . apply_filters( 'woocommerce_variation_option_name', $term->name ) . '</option>';
}
} else {
foreach ( $options as $option ) {
if($name == 'pa_weight' && $option != '1kg' ) { // or whatever your attribute is called, and whatever the attribute term is called.
if(!user_has_role('aziende'){
continue;
}
}
echo '<option value="' . esc_attr( sanitize_title( $option ) ) . '" ' . selected( sanitize_title( $selected_value ), sanitize_title( $option ), false ) . '>' . esc_html( apply_filters( 'woocommerce_variation_option_name', $option ) ) . '</option>';
}
}
这段代码没有经过测试,所以我不知道它是否有效。但它应该给你一个正确方向的指针。
[编辑:它实际上是在functions.php中添加代码并省略代码WC文件中的更改时工作的。重要提示:它只在ONE属性存在时起作用。然而,当有2个属性(大小 由于2.0 WooCommerce要么隐藏缺货的产品变体(一个明显的问题,因为客户没有办法知道它们的存在),要么将它们显示为库存变体(也是一个问题,因为客户会系统地失望地发现变体是缺货的-点击购买后的股票)。 该线程包括一个灰色解决方案,以消
我是oAuth2安全系统的新手。关于访问REST资源的基于用户角色的授权,我有一个问题。我的互联网冲浪提供了关于oauth2的身份验证部分的输入。 让我提供给你困扰我的情况。
我想在Wp/WooCommerce /shop/页面上显示所有产品及其变体。(我下面描述的过程是我试图让它工作的过程。欢迎其他选择。 标准是什么:产品A和产品B在网站上展示。产品A有“广告到购物车”按钮。产品B有“选择选项”按钮。 我想要的是:产品A是一种“简单”的产品,在商店页面上显示产品B是一种“可变”产品,有两种组合(黑色/蓝色)。添加到购物车按钮将此变体添加到购物车 我想在商店页面上展示3
我这里有一个场景。 在我设置的WooCommerce商店中,产品类别是父类别,而是它的子类别。这里的父类别名称布朗克斯是销售布朗克斯婴儿用品的城市。 另一个产品类别是父类别,是它的子类别。在这里,父类别名称Newark是销售“Newark婴儿用品”下产品的城市。 布朗克斯的一名顾客正试图购买纽瓦克婴儿用品类别的产品。 我正在尝试在WooCommerce中设置一个自定义运费,它可以根据客户的位置计算
我正在尝试为函数编写一个代码段。php文件,该文件仅显示所选变体的一个价格,因此忽略了在单个产品页面上随变体价格一起显示的价格范围。我正在使用以下代码: 问题是,例如,当您有两个单一产品的变体,而其中一个缺货时,此脚本会在单一产品页面上隐藏剩余变体的价格。我在想,也许每个产品都有一些可用的变体,并使用IF来使用标准的单一产品模板来显示它们。或者你有更好的办法解决这个问题?
因此,在我们的Laravel应用程序中有两个角色(internet客户端和管理员)。下面是DB模式 我们想允许www.site。com/登录路径,仅记录具有“客户端”角色的用户。 请注意,一旦用户登录并强制注销,我们不想检查角色。 谢谢