这并不像我最初想象的那么容易。
这将显示显示每个属性。。。。显然,默认情况下,WC隐藏任何没有任何术语的属性。他们已经在代码中了display:none;
.
function wpa_120062_scripts(){ ?>
<script type="text/javascript">
jQuery(document).ready(function($) {
$(\'.woocommerce_attributes > div\').removeClass(\'closed\').show();
$(\'#woocommerce_attributes a.expand_all\').click();
});
</script>
<?php
}
add_action(\'admin_print_footer_scripts\', \'wpa_120062_scripts\');
根据您是否计划单击所有“在产品页面上可见”复选框,您可以在创建特定帖子时向其属性添加一些数据。根据其他一些WPA问题,我已经
transition_post_status
. “自动拔模”状态,应该只在第一次创建时触发。。。从那里,它要么转到“草稿”或任何其他post状态。
function wpa_120062_new_product($new_status, $old_status, $post){
if ( $new_status == "auto-draft" && isset( $post->post_type ) && $post->post_type == \'product\' ){
// do stuff here
$defaults = array ( \'pa_color\' => array (
\'name\' => \'pa_color\',
\'value\' => \'\',
\'position\' => 1,
\'is_visible\' => 1,
\'is_variation\' => 1,
\'is_taxonomy\' => 1,
),
\'pa_capacity\' => array (
\'name\' => \'pa_capacity\',
\'value\' => \'\',
\'position\' => 2,
\'is_visible\' => 1,
\'is_variation\' => 1,
\'is_taxonomy\' => 1,
)
);
update_post_meta( $post->ID , \'_product_attributes\', $defaults );
}
}
add_action(\'transition_post_status\', \'wpa_120062_new_product\', 10, 3);
pa_capacity
和
pa_color
只是我已经安装的一些示例属性。
PS-我建议更新wpa_120062_scripts
只显示在产品编辑屏幕上,但之后我有点烦了。
编辑我们可以使用woocommerce功能wc_get_attribute_taxonomies()
要动态获取所有属性并循环它们,请执行以下操作:
function wpa_120062_new_product($new_status, $old_status, $post){
if ( $new_status == "auto-draft" && isset( $post->post_type ) && $post->post_type == \'product\' ){
if( function_exists( \'wc_get_attribute_taxonomies\' ) && ( $attribute_taxonomies = wc_get_attribute_taxonomies() ) ) {
$defaults = array();
foreach ( $attribute_taxonomies as $tax ) {
$name = wc_attribute_taxonomy_name( $tax->attribute_name );
// do stuff here
$defaults[ $name ] = array (
\'name\' => $name,
\'value\' => \'\',
\'position\' => 1,
\'is_visible\' => 1,
\'is_variation\' => 1,
\'is_taxonomy\' => 1,
);
update_post_meta( $post->ID , \'_product_attributes\', $defaults );
}
}
}
}
add_action(\'transition_post_status\', \'wpa_120062_new_product\', 10, 3);
PS-我认为WC2中的默认设置会有所不同。1、对于我的最新git版本,这对我来说已经不太一样了。