我创建了一个名为vp_extended的自定义变量产品类型。默认情况下,当我添加名为“Size”的属性时,不会在属性下显示“用于变体”的复选框。所以当我添加下面的代码时:
<?php
function producttype_custom_js() {
if ( 'product' != get_post_type() ) :
return;
endif;
?>
<script type='text/javascript'>
jQuery( document ).ready( function($) {
$('.enable_variation').addClass('show_if_vp_extended').show();
});
</script>
<?php
}
add_action( 'admin_footer', 'producttype_custom_js' );
勾选框正在显示,我可以使用它。问题是当我选择添加另一个属性(例如性别)时,页面加载了一点,然后两个属性都缺少“用于变体”的复选框。
当我检查CSS中的元素时,我可以看到我的类“show_if_vp_extended” 被添加到第一个元素上的“.enable_variation”类中,并且样式说display = block(这里一切都很好)。但是当我将第二个属性添加到产品时,它不会让我的类和第一个元素将CSS更改为“display:none”,但仍然使用我的vp扩展类。
我在这里想念或做错了什么?
JavaScript函数在1个属性上运行时的图片:
选择添加1个属性时的图片:
答案 0 :(得分:1)
新添加的属性不在DOM中,因此您的代码不会影响它。我相信每次添加属性时都需要运行代码。
这样的事可能有用:
<div v-for="log in logs">
<a href="/log/{{log.purchaseId}}">{{log.id}}</a>
</div>
或者从订阅中大量借用,这可能更完整:
$( 'body' ).on( 'woocommerce_added_attribute', function( event ){
$('.woocommerce_attribute_data .enable_variation').addClass('show_if_vp_extended').show();
});