【发布时间】:2018-12-26 16:33:35
【问题描述】:
我需要在管理产品变体设置中将复选框字段替换为唯一的选择字段,以显示我从子术语 ID 获得的产品类别术语名称(仅适用于我的可变产品)。
所以woocommerce_wp_checkbox()函数将被woocommerce_wp_select()代替。
这是我的复选框的工作代码:
<?php
// Woocommerce Product meta
// Add Variation Settings
add_action( 'woocommerce_product_after_variable_attributes', 'variation_settings_fields', 10, 3 );
// Save Variation Settings
add_action( 'woocommerce_save_product_variation', 'save_variation_settings_fields', 10, 2 );
// Add fields
function variation_settings_fields( $loop, $variation_data, $variation ) {
// Characteristics
$args = array( 'type' => 'product', 'taxonomy' => 'product_cat', 'child_of' => 20 );
$categories = get_categories( $args );
foreach ($categories as $cat) {
woocommerce_wp_checkbox( array(
"id" => $cat->name .'_['. $variation->ID .']',
"label" => __(" " . $cat->name, "woocommerce" ),
"value" => get_post_meta( $variation->ID, $cat->name .'_', true ),
)
);
}
?>
<?php
}
// Save
function save_variation_settings_fields( $post_id ) {
// Characteristics
$args = array( 'type' => 'product', 'taxonomy' => 'product_cat', 'child_of' => 20 );
$categories = get_categories( $args );
foreach ($categories as $cat) {
$checkbox = isset( $_POST[$cat->name . '_'][ $post_id ] ) ? 'yes' : 'no';
update_post_meta( $post_id, $cat->name . '_', $checkbox );
}
}
?>
如何用下拉列表替换复选框(或最终是单选按钮)?
非常感谢任何帮助。
【问题讨论】:
-
我已经发布了显示产品变体处理自定义分类法和元数据的代码,你在说什么?我很迷惑;它工作正常。这是我正在努力解决的不清楚的 woocommerce 语法; 'woocommerce_product_after_variable_attributes' 是专门为此而设计的专用 woocommerce 功能,因此您客观上可以
-
好吧,抱歉,我不知道使用类似的术语有很大的偏差,我的意思是可变产品
-
不抱歉,您在产品变体自定义设置中使用产品类别...我已经回答了您的问题,它有效。
标签: php wordpress woocommerce custom-taxonomy variations