微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – Woocommerce从外部来源更新价格

我有从外部数据库更新产品价格的问题.我需要在每次访问此位置时检查产品的价格.为此,我使用the_post钩子.例如,单品的价格为’1718′.

function chd_the_post_action( $post ) {
    if ( $post && $post->post_type == 'product' ) {
        $product = wc_get_product( $post->ID );  
        if ( $product ) {
            $price = '1718';
            $product->set_price( "$price" );    
            $product->set_regular_price( "$price" );    
            $product->set_sale_price( "$price" );    
            $product->save();
        }
    }
}

代码更新了数据库中的产品价格,但它不会在同一时刻更改页面上的价格视图,而是仅在页面重新加载后,因为post和product变量是由setup_postdata()设置的.
因此我使用woocommerce钩子显示更新价格:

function chd_get_price_filter( $price,$item ) {
    return '1718';
}
add_filter( 'woocommerce_product_get_price','chd_get_price_filter',100,2 );
add_filter( 'woocommerce_product_get_regular_price',2 );
add_filter( 'woocommerce_product_get_sale_price',2 );

有没有可以用更好的方式做这个动作的钩子?

解决方法

使用update_post_Meta函数更新产品价格

update_post_Meta( $product->id,'_sale_price','1718' );
update_post_Meta( $product->id,'_regular_price','1718 );

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐