特定产品的代码

时间:2018-02-26 作者:Miguel Gomes

因此,我有一段代码,它根据客户选择的选项更改可变价格。

add_action( \'woocommerce_before_single_product\', \'check_if_variable_first\' );
function check_if_variable_first(){
    if ( is_product() ) {
        global $post;
        $product = wc_get_product( $post->ID );
        if ( $product->is_type( \'variable\' ) ) {
            // removing the price of variable products
remove_action( \'woocommerce_single_product_summary\', \'woocommerce_template_single_price\', 10 );

// Change location of
add_action( \'woocommerce_single_product_summary\', \'custom_wc_template_single_price\', 10 );
function custom_wc_template_single_price(){
    global $product;

// Variable product only
if($product->is_type(\'variable\')):
    // Main Price
    $prices = array( $product->get_variation_price( \'min\', true ), $product->get_variation_price( \'max\', true ) );
    $price = $prices[0] !== $prices[1] ? sprintf( __( \'<span class="from-price">From:</span> %1$s\', \'woocommerce\' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );

    // Sale Price
    $prices = array( $product->get_variation_regular_price( \'min\', true ), $product->get_variation_regular_price( \'max\', true ) );
    sort( $prices );
    $saleprice = $prices[0] !== $prices[1] ? sprintf( __( \'<span class="from-price">From:</span> %1$s\', \'woocommerce\' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );

    if ( $price !== $saleprice && $product->is_on_sale() ) {
        $price = \'<del>\' . $saleprice . $product->get_price_suffix() . \'</del> <ins>\' . $price . $product->get_price_suffix() . \'</ins>\';
    }

    ?>
    <style>
        div.woocommerce-variation-price,
        div.woocommerce-variation-availability,
        div.hidden-variable-price {
            height: 0px !important;
            overflow:hidden;
            position:relative;
            line-height: 0px !important;
            font-size: 0% !important;
        }
    </style>
    <script>
    jQuery(document).ready(function() {
        jQuery(\'select\').blur( function(){
            if( \'\' != jQuery(\'input.variation_id\').val() ){
                jQuery(\'p.price\').html(jQuery(\'div.woocommerce-variation-price > span.price\').html());
                jQuery("p.price").prepend(\'<span class="stack-price">Your Stack: </span>\');
                console.log(jQuery(\'input.variation_id\').val());
            } else {
                jQuery(\'p.price\').html(jQuery(\'div.hidden-variable-price\').html());
                if(jQuery(\'p.availability\'))
                    jQuery(\'p.availability\').remove();
                console.log(\'NULL\');
            }
        });


    });
    </script>
    <?php

    echo \'<p class="price">\'.$price.\'</p>
    <div class="hidden-variable-price" >\'.$price.\'</div>\';

endif;
}

        }
    }
}
在此处找到代码:https://stackoverflow.com/questions/44912300/replace-the-variable-price-range-by-the-chosen-variation-price-in-woocommerce-3

然而,我只希望该代码适用于两种特定的产品。我尝试添加$product_ids = array( 375, 39 ); 之后if ( $product->is_type( \'variable\' ) ) { 但它没有起作用。

有什么帮助吗?

1 个回复
SO网友:Atif Aqeel

您可以使用

if(is_product() && get_the_id() == 1253) {
// your code here
}
首先获取产品id

结束

相关推荐