Php 当股票为“报价”时,我如何更改价格;0“;吴哥商业

Php 当股票为“报价”时,我如何更改价格;0“;吴哥商业,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,当股票为“0”时,如何更改价格 我有一个“定期价格”和“另一个价格”在管理方面。“另一个价格”是一个元数据(您可以在代码->中看到“\u alg\u msrp”)。 我使用以下代码触发: if($product->stock_quantity == 0 ){ function return_custom_price($price, $product) { global $post, $blog_id; $post_id = $post->ID;

当股票为“0”时,如何更改价格

我有一个“定期价格”和“另一个价格”在管理方面。“另一个价格”是一个元数据(您可以在代码->中看到“\u alg\u msrp”)。 我使用以下代码触发:

if($product->stock_quantity == 0 ){
    function return_custom_price($price, $product) {
        global $post, $blog_id;
        $post_id = $post->ID;
        $price = get_post_meta( get_the_ID(), '_alg_msrp', true );

        return $price;
    }
    add_filter('woocommerce_get_price', 'return_custom_price', 10, 2);
}
价格确实会变化,但我只希望它在前端发生变化,而不是在管理端。这段代码改变了整个视图。我的意思是,它怎么可能只影响首页,而不影响管理页面,就像WooCommerce中的“产品”选项卡一样。
感谢您的建议。

对于简单的产品,这取决于您想要更改的位置

自3.0.0版以来,“woocommerce\u get\u price”已被弃用

使用“woocommerce\u product\u get\u price”代替


我会修改它,使逻辑在函数内部:

function return_custom_price($price, $product) {
    if ( is_admin() || $product->stock_quantity != 0 ) 
        return $price;

    $custom_price = get_post_meta( $product->get_id(), '_alg_msrp', true );
    return ($custom_price == '') ? $price : $custom_price;
}
add_filter('woocommerce_get_price', 'return_custom_price', 10, 2);

只有当它不为空时,才会返回自定义价格。否则它将返回正常价格。

您可以添加
&&&!_admin()
在您的
上吗如果
我应该把它放在哪里?哪个视图?请或者只是添加到我的代码中?@Sidik see my answer你正在使用的钩子不推荐使用“woocommerce\u get\u price”你正在使用的钩子不推荐使用
function return_custom_price($price, $product) {
    if ( is_admin() || $product->stock_quantity != 0 ) 
        return $price;

    $custom_price = get_post_meta( $product->get_id(), '_alg_msrp', true );
    return ($custom_price == '') ? $price : $custom_price;
}
add_filter('woocommerce_get_price', 'return_custom_price', 10, 2);