我有从外部数据库更新产品价格的问题.我需要在每次访问此位置时检查产品的价格.为此,我使用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 );
有没有可以用更好的方式做这个动作的钩子?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。