Wordpress 将产品/可下载选项添加到各个产品变体
我在商店里有很多可下载的产品,它们都有不同的变体。其中之一是该产品的试用版,我希望能够相应地对其进行标记。 在设置不同的变体时,可以在WooCommerce中分别为每个变体设置可下载、虚拟等。 我想添加的是变体本身中的另一个复选框[]试用版,而不是一般产品,但我找不到添加此选项的正确位置 这是我经过一段时间的尝试和错误:Wordpress 将产品/可下载选项添加到各个产品变体,wordpress,woocommerce,Wordpress,Woocommerce,我在商店里有很多可下载的产品,它们都有不同的变体。其中之一是该产品的试用版,我希望能够相应地对其进行标记。 在设置不同的变体时,可以在WooCommerce中分别为每个变体设置可下载、虚拟等。 我想添加的是变体本身中的另一个复选框[]试用版,而不是一般产品,但我找不到添加此选项的正确位置 这是我经过一段时间的尝试和错误: add_filter( 'product_type_options', 'add_trialversion_product_option' ); function add_tr
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插件有一个选项,可以在带条件的签出过程中显示复选框。其中之一是数字下载,但我找不到新的试用版设置。有没有其他地方我必须配置它,使试用版显示在可下载,虚拟等?你肯定可以添加一些东西到结帐。你所问的听起来像是另一个问题。