因此,我有一段代码,它根据客户选择的选项更改可变价格。
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\' ) ) {
但它没有起作用。
有什么帮助吗?