将自定义复选框添加到 WooCommerce 产品变体选项
Adding custom checkbox to WooCommerce product variation options
我在 WC 管理中为可变产品添加了一个自定义字段。使用操作:
action_woocommerce_variation_options_pricing
但是它显示在错误的位置。理想情况下,我希望复选框显示在上面的选项部分中。但是我找不到将它移动到那里的操作。
我花了很长时间查看 WC 文档,但找不到正确的操作。有谁知道我将复选框移动到这个位置的正确方法吗?
您可以使用 woocommerce_variation_options
操作挂钩,将自定义复选框添加到 WooCommerce 产品变体选项。
(复制自:views/html-variation-admin.php
,第 188 行)
<?php do_action( 'woocommerce_variation_options', $loop, $variation_data, $variation ); ?>
所以你得到:
// Add checkbox
function action_woocommerce_variation_options( $loop, $variation_data, $variation ) {
$is_checked = get_post_meta( $variation->ID, '_mycheckbox', true );
if ( $is_checked == 'yes' ) {
$is_checked = 'checked';
} else {
$is_checked = '';
}
?>
<label class="tips" data-tip="<?php esc_attr_e( 'This is my data tip', 'woocommerce' ); ?>">
<?php esc_html_e( 'Checkbox:', 'woocommerce' ); ?>
<input type="checkbox" class="checkbox variable_checkbox" name="_mycheckbox[<?php echo esc_attr( $loop ); ?>]"<?php echo $is_checked; ?>/>
</label>
<?php
}
add_action( 'woocommerce_variation_options', 'action_woocommerce_variation_options', 10, 3);
// Save checkbox
function action_woocommerce_save_product_variation( $variation_id, $i ) {
if ( ! empty( $_POST['_mycheckbox'] ) && ! empty( $_POST['_mycheckbox'][$i] ) ) {
update_post_meta( $variation_id, '_mycheckbox', 'yes' );
} else {
update_post_meta( $variation_id, '_mycheckbox', 'no' );
}
}
add_action( 'woocommerce_save_product_variation', 'action_woocommerce_save_product_variation', 10, 2 );
我在 WC 管理中为可变产品添加了一个自定义字段。使用操作:
action_woocommerce_variation_options_pricing
但是它显示在错误的位置。理想情况下,我希望复选框显示在上面的选项部分中。但是我找不到将它移动到那里的操作。
我花了很长时间查看 WC 文档,但找不到正确的操作。有谁知道我将复选框移动到这个位置的正确方法吗?
您可以使用 woocommerce_variation_options
操作挂钩,将自定义复选框添加到 WooCommerce 产品变体选项。
(复制自:views/html-variation-admin.php
,第 188 行)
<?php do_action( 'woocommerce_variation_options', $loop, $variation_data, $variation ); ?>
所以你得到:
// Add checkbox
function action_woocommerce_variation_options( $loop, $variation_data, $variation ) {
$is_checked = get_post_meta( $variation->ID, '_mycheckbox', true );
if ( $is_checked == 'yes' ) {
$is_checked = 'checked';
} else {
$is_checked = '';
}
?>
<label class="tips" data-tip="<?php esc_attr_e( 'This is my data tip', 'woocommerce' ); ?>">
<?php esc_html_e( 'Checkbox:', 'woocommerce' ); ?>
<input type="checkbox" class="checkbox variable_checkbox" name="_mycheckbox[<?php echo esc_attr( $loop ); ?>]"<?php echo $is_checked; ?>/>
</label>
<?php
}
add_action( 'woocommerce_variation_options', 'action_woocommerce_variation_options', 10, 3);
// Save checkbox
function action_woocommerce_save_product_variation( $variation_id, $i ) {
if ( ! empty( $_POST['_mycheckbox'] ) && ! empty( $_POST['_mycheckbox'][$i] ) ) {
update_post_meta( $variation_id, '_mycheckbox', 'yes' );
} else {
update_post_meta( $variation_id, '_mycheckbox', 'no' );
}
}
add_action( 'woocommerce_save_product_variation', 'action_woocommerce_save_product_variation', 10, 2 );