将产品/可下载选项添加到单个产品变体
Posted
技术标签:
【中文标题】将产品/可下载选项添加到单个产品变体【英文标题】:Add product/downloadable option to individual product variants 【发布时间】:2020-07-14 04:31:31 【问题描述】:我在商店里有一堆可下载的产品,它们都有不同的变体。其中之一是该产品的试用版,我希望能够相应地标记它。 在设置不同的变体时,可以在 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 );
虽然这通常会为可变产品添加“试用版”复选框,但这不是我想要的,因为我想将产品的一些变体设置为试用版,而将一些变体设置为常规版本.
我希望我只是遗漏了一些明显的东西,但由于我不是 woocommerce 专家,我很难找到它。
感谢您的帮助:)
我在这里添加了一张图片,以防我不清楚我想在哪里添加一个复选框: woocommerce screenshot
【问题讨论】:
【参考方案1】:这将适用于每个并添加到您想要的位置,因为变体选项与您尝试过滤的位置不同。
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' );
【讨论】:
这很好用,非常感谢。我现在意识到另一个问题,但我不确定这是一个后续问题还是完全不同的问题:WordPress 插件“Germanized”有一个选项可以在结帐期间显示复选框,并附有条件。其中之一是数字下载类型,但我无法在那里找到新的“试用版”设置。还有其他地方我必须配置它以使“试用版”与“可下载”、“虚拟”等一起显示吗? 您绝对可以在结账时添加一些东西。不过,您所问的问题听起来像是 SO 的另一个问题。以上是关于将产品/可下载选项添加到单个产品变体的主要内容,如果未能解决你的问题,请参考以下文章
添加将更改 Woocommerce 简单产品中价格的选择字段
在WooCommerce中产品缺货时更改单个添加到购物车文本