需要来自functions.php的woocommerce商店页面产品的定制定价

时间:2014-10-30 13:13:11

标签: php wordpress woocommerce

我想从functions.php获得自定义定价。对于woocommerce商店页面,我想要输出如下。 我创建了一个自定义的taxonamy(团队),我正在从后端应用自定义价格。

例如:

 1. Taxonomy : Team1
   a)  Product Id : 17,  Price =222;    //Original price $45
   b) Product Id :  18,  Price = 444;   // Original price $55

 2. Taxonomy : Team2
    a) Product Id : 17,  Price =999;    //Original price $45
    b) Product Id :  18,  Price = 888;  // Original price $55

如何使用以下代码获取我的示例输出?如有任何更改或修改,请告诉我。

我使用以下代码:

add_filter( 'woocommerce_get_regular_price', function ($price, $productd ) {
    foreach($_SESSION['my_array'] as $id => $price1) :

            $regular_price = get_post_meta(get_the_ID(), '_regular_price');
            $price = $regular_price[0];


        if(get_the_ID() == $id) :
        return $price1;
        else :

        return $price;

        endif;

    endforeach;

}, 10, 2 );

谢谢, 萨蒂亚

1 个答案:

答案 0 :(得分:0)

一旦我更正了你的解析错误,评论中的代码就可以了。

add_filter('woocommerce_get_price','change_price', 10, 2); 
add_filter('woocommerce_get_regular_price','change_price', 10, 2); 
add_filter('woocommerce_get_sale_price','change_price', 10, 2); 
function change_price($price, $productd){ 
    if($productd->id == 16): 
        $price = 160;   
    endif;

    return $price;
}

修改为检查某个分类术语中的产品,我们只使用has_term( $term, $taxonomy, $post )。您需要调整期限和税收滞后。

add_filter('woocommerce_get_price','change_price', 10, 2); 
add_filter('woocommerce_get_regular_price','change_price', 10, 2); 
add_filter('woocommerce_get_sale_price','change_price', 10, 2); 
function change_price($price, $productd){ 
    if( has_term( 'team1', 'teams', $productd->id ) ): 
        $price = 160;   
    endif;

    return $price;
}

更新

阅读你的新问题,看起来你错了(我仍然可能会误解你)。如果产品1位于两个第1组和第2组,您可以使用is_taxonomy("team-A")更改分类法页面上的价格,但所有add_to_cart()功能都不会知道使用正确的价格,因为没有办法根据期限辨别它应该使用哪个价格(因为产品是两个术语)。

如果要向不同的用户组显示不同的价格,那么您需要一个自定义用户功能,并使用它来检查当前用户何时具有该上限.ex:current_user_can('team-b')