将自定义复选框添加到 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 );