Wordpress 将产品/可下载选项添加到各个产品变体

Wordpress 将产品/可下载选项添加到各个产品变体,wordpress,woocommerce,Wordpress,Woocommerce,我在商店里有很多可下载的产品,它们都有不同的变体。其中之一是该产品的试用版,我希望能够相应地对其进行标记。 在设置不同的变体时,可以在WooCommerce中分别为每个变体设置可下载、虚拟等。 我想添加的是变体本身中的另一个复选框[]试用版,而不是一般产品,但我找不到添加此选项的正确位置 这是我经过一段时间的尝试和错误: add_filter( 'product_type_options', 'add_trialversion_product_option' ); function add_tr

我在商店里有很多可下载的产品,它们都有不同的变体。其中之一是该产品的试用版,我希望能够相应地对其进行标记。 在设置不同的变体时,可以在WooCommerce中分别为每个变体设置可下载、虚拟等。 我想添加的是变体本身中的另一个复选框[]试用版,而不是一般产品,但我找不到添加此选项的正确位置

这是我经过一段时间的尝试和错误:

add_filter( 'product_type_options', 'add_trialversion_product_option' );
function add_trialversion_product_option( $product_type_options ) 
{
    $product_type_options['trialversion'] = array(
        'id'            => '_trialversion',
        'wrapper_class' => 'show_if_variable',
        'label'         => __( 'Trial Version', 'woocommerce' ),
        'description'   => __( '', 'woocommerce' ),
        'default'       => 'no'
    );
    return $product_type_options;
}


add_action( 'woocommerce_save_product_variation', 'save_trialversion_option_fields'  );
function save_trialversion_option_fields( $post_id ) 
{
    $is_trialversion = isset( $_POST['_trialversion'] ) ? 'yes' : 'no';
    update_post_meta( $post_id, '_trialversion', $is_trialversion );
}
虽然这通常会将试用版复选框添加到可变产品中,但这不是我想要的,因为我想将产品的一些变体设置为试用版,而将一些设置为常规版本

我希望我只是错过了一些明显的东西,但因为我不是一个吴哥商业专家,所以我很难找到它

感谢您的帮助:

我在这里添加了一个图像,以防我不清楚在哪里添加复选框:

这将适用于每个选项,并添加到您想要的位置,因为变体选项与您尝试筛选的位置不同

add_action('woocommerce_variation_options', 'he_add_to_variation_option', 10, 3);
function he_add_to_variation_option( $loop, $variation_data, $variation){
    $is_trial = (get_post_meta($variation->ID, '_trialversion', true)) ? ' checked' : '';
    ?>
    <label class="tips" data-tip="<?php esc_attr_e( 'Enable this option to make as a trial version', 'woocommerce' ); ?>">
        <?php esc_html_e( 'Trial Version?', 'woocommerce' ); ?>
        <input type="checkbox" class="checkbox variable_is_trial_version" name="_trialversion[<?php echo esc_attr( $variation->ID ); ?>]"<?php echo $is_trial;?>/>
    </label>
<?php
}

add_action( 'woocommerce_save_product_variation', 'save_trialversion_option_fields'  );
function save_trialversion_option_fields( $post_id ) {
    if ( isset( $_POST['_trialversion'] ) ){
        foreach ( $_POST['_trialversion'] as $productid=>$checked ){
            update_post_meta( $productid, '_trialversion', 'yes' );
        }
    }    
}

这将适用于每个选项,并添加到您想要的位置,因为变体选项与您尝试筛选的位置不同

add_action('woocommerce_variation_options', 'he_add_to_variation_option', 10, 3);
function he_add_to_variation_option( $loop, $variation_data, $variation){
    $is_trial = (get_post_meta($variation->ID, '_trialversion', true)) ? ' checked' : '';
    ?>
    <label class="tips" data-tip="<?php esc_attr_e( 'Enable this option to make as a trial version', 'woocommerce' ); ?>">
        <?php esc_html_e( 'Trial Version?', 'woocommerce' ); ?>
        <input type="checkbox" class="checkbox variable_is_trial_version" name="_trialversion[<?php echo esc_attr( $variation->ID ); ?>]"<?php echo $is_trial;?>/>
    </label>
<?php
}

add_action( 'woocommerce_save_product_variation', 'save_trialversion_option_fields'  );
function save_trialversion_option_fields( $post_id ) {
    if ( isset( $_POST['_trialversion'] ) ){
        foreach ( $_POST['_trialversion'] as $productid=>$checked ){
            update_post_meta( $productid, '_trialversion', 'yes' );
        }
    }    
}

这很有效,非常感谢。我现在意识到了另一个问题,但我不确定这是一个后续问题还是完全不同的问题:Germanized的WordPress插件有一个选项,可以在带条件的签出过程中显示复选框。其中之一是数字下载,但我找不到新的试用版设置。有没有其他地方我必须配置它,使试用版显示在可下载,虚拟等?你肯定可以添加一些东西到结帐。你所问的听起来像是另一个问题。这很有效,非常感谢。我现在意识到了另一个问题,但我不确定这是一个后续问题还是完全不同的问题:Germanized的WordPress插件有一个选项,可以在带条件的签出过程中显示复选框。其中之一是数字下载,但我找不到新的试用版设置。有没有其他地方我必须配置它,使试用版显示在可下载,虚拟等?你肯定可以添加一些东西到结帐。你所问的听起来像是另一个问题。