如何使用变体ID通过javascript查找变体价格?
这是我到目前为止所得到的.我有变种ID,但我无法弄清楚.我一直在谷歌搜索几个小时.
add_action( 'woocommerce_before_add_to_cart_quantity', 'func_option_valgt' );
function func_option_valgt() {
global $product;
global $woocommerce;
if ( $product->is_type('variable') ) {
?>
<script>
jQuery(document).ready(function($) {
$('input').change( function(){
if( '' != $('input.variation_id').val() ) {
var var_id = $('input.variation_id').val();
var var_length = $('#cfwc-title-field').val(); //LENGTH
var var_diameter =$('#diameter').val(); //DIAMETER
alert('Du valgte variant #' + var_id + " Lengde: " + var_length + " Diameter: " + var_diameter + " Variantpris: " + var_variant_pris);
}
});
});
</script>
<?php
}
}
任何帮助赞赏.
解决方法:
使用以下重新访问的代码,您将从jQuery脚本中获取变体ID的价格:
add_action( 'woocommerce_before_add_to_cart_quantity', 'func_option_valgt' );
function func_option_valgt() {
global $product;
if ( $product->is_type('variable') ) {
$variations_data =[]; // Initializing
// Loop through variations data
foreach($product->get_available_variations() as $variation ) {
// Set for each variation ID the corresponding price in the data array (to be used in jQuery)
$variations_data[$variation['variation_id']] = $variation['display_price'];
}
?>
<script>
jQuery(function($) {
var jsonData = <?php echo json_encode($variations_data); ?>,
inputVID = 'input.variation_id';
$('input').change( function(){
if( '' != $(inputVID).val() ) {
var vid = $(inputVID).val(), // VARIATION ID
length = $('#cfwc-title-field').val(), // LENGTH
diameter = $('#diameter').val(), // DIAMETER
vprice = ''; // Initilizing
// Loop through variation IDs / Prices pairs
$.each( jsonData, function( index, price ) {
if( index == $(inputVID).val() ) {
vprice = price; // The right variation price
}
});
alert('variation Id: '+vid+' | Lengde: '+length+' | Diameter: '+diameter+' | Variantpris: '+vprice);
}
});
});
</script>
<?php
}
}
代码在您的活动子主题(或活动主题)的function.php文件中.经过测试和工作.
原文地址:https://codeday.me/bug/20190926/1820200.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。