如何解决如何在WooCommerce中获取当前选定的可变产品特定数据
我要访问php中选定的产品变体权重值。我尝试在下面的代码中获取未选择的属性的最后一个值。
foreach($product->get_available_variations() as $values){
$weight = $values['attributes']["attribute_weight"];
}
解决方法
选定的变体属性只能通过Javascript访问,因为这是一个客户端实时事件……下面是一个示例,它将显示变量产品的选定变体自定义属性“ attribute_weight”字词,添加到购物车按钮下方:
add_action( 'woocommerce_after_add_to_cart_form','display_selected_variation_data');
function display_selected_variation_data() {
global $product;
## For variable products (and their variations)
if( $product->is_type('variable') ) {
// Here below set your custom attribute name
$attribute_name = 'attribute_weight'; // Or "attribute_pa_weight" for non custom attributes
?>
<p class="custom-<?php echo $attribute_name; ?>" style="border:solid 1px black; text-align:center"></div>
<script type="text/javascript">
jQuery( function($){
// On select variation event
$('form.variations_form').on('show_variation',function( event,data ){
var attrValue = data.attributes.<?php echo $attribute_name; ?>;
$( 'p.custom-<?php echo $attribute_name; ?>' ).html( data.attributes.<?php echo $attribute_name; ?> );;
// For testing (displayed on the browser's console)
console.log( 'Variation Id: ' + data.variation_id + ' | Attribute value: ' + attrValue );
});
// On unselect variation event
$('form.variations_form').on('hide_variation',function(){
$( 'p.custom-<?php echo $attribute_name; ?>' ).html( '<em>no value</em>' );
});
});
</script><?php
}
}
代码进入活动子主题(或活动主题)的functions.php文件中。经过测试,可以正常工作。
相关:Get currently selected variation id from Woocommerce variable product
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。