【发布时间】:2021-05-07 09:34:21
【问题描述】:
下面是我的代码,我在其中为我的变量订阅设置了一个名为 mindesk_analytics_opt_out 的自定义字段,并且按照我的预期运行良好。
但是,每当我创建新变体并打开面板时,我的默认复选框始终设置为 checked。我无法理解我的代码在哪里做错了。
有人可以指导我在哪里犯了一个小错误吗?这是我的工作代码。
<?php
// Showing fields for variable subscriptions
add_action('woocommerce_product_after_variable_attributes', 'show_WC_Product_Variable_Subscription_Variation_Custom_Fields', 10, 3);
// Saving fields for variable subscriptions
add_action('woocommerce_save_product_variation', 'save_WC_Product_Variable_Subscription_Variation_Custom_Fields', 10, 2);
function show_WC_Product_Variable_Subscription_Variation_Custom_Fields($loop, $variation_data, $variation) {
$mindesk_analytics_opt_out = get_post_meta($variation->ID, 'mindesk_analytics_opt_out', true);
echo '<strong>Mindesk e-Commerce</strong>';
woocommerce_wp_checkbox(
array(
'id' => "mindesk_analytics_opt_out{$loop}",
'name' => "mindesk_analytics_opt_out[{$loop}]",
'wrapper_class' => 'show_if_simple',
'label' => __(' Analytics', 'woocommerce'),
'value' => !empty($mindesk_analytics_opt_out) ? 'yes' : $mindesk_analytics_opt_out,
'cbvalue' => $mindesk_analytics_opt_out,
)
);
}
function save_WC_Product_Variable_Subscription_Variation_Custom_Fields($variation_id, $loop) {
$mindesk_analytics_opt_out = isset($_POST['mindesk_analytics_opt_out'][$loop]) ? 'yes' : 'no';
update_post_meta($variation_id, 'mindesk_analytics_opt_out', esc_attr($mindesk_analytics_opt_out));
}
任何意见或建议将不胜感激。
【问题讨论】:
标签: php woocommerce hook-woocommerce custom-fields woocommerce-subscriptions