Php 如何在WooCommerce产品管理员中设置始终选中的复选框?

Php 如何在WooCommerce产品管理员中设置始终选中的复选框?,php,wordpress,checkbox,woocommerce,product,Php,Wordpress,Checkbox,Woocommerce,Product,如何将复选框设置为始终选中?我正在使用一个插件“Woocommerce产品费”,它向产品广告费用。它有一个复选框,当选中该复选框时,它会计算购物车中添加的每个产品的费用。我想实现的是设置此复选框,使其对每个产品都始终处于选中状态,但我找不到正确的方法。我加了$checked但什么都没发生 这是我的代码摘录: // Check Box - Fee Multiply Option woocommerce_wp_checkbox( array( 'id'=> '

如何将复选框设置为始终选中?我正在使用一个插件“Woocommerce产品费”,它向产品广告费用。它有一个复选框,当选中该复选框时,它会计算购物车中添加的每个产品的费用。我想实现的是设置此复选框,使其对每个产品都始终处于选中状态,但我找不到正确的方法。我加了$checked但什么都没发生

这是我的代码摘录:

    // Check Box - Fee Multiply Option
    woocommerce_wp_checkbox( array( 
        'id'=> 'product-fee-multiplier[' . $variation->ID . ']', 
        'label' => __('Multiply Fee by Quantity', 'woocommerce-product-fees' ),
        'value' => get_post_meta( $variation->ID, 'product-fee-multiplier', true ), 
        'wrapper_class' => "product-fee-multiplier" , 
        'required'  => true
    ), $checked );

    do_action( 'wcpf_add_variation_settings' );

}

public function save_variation_settings_fields( $post_id ) {
    $another_field_updated = false;
    // Text Field - Fee Name
    $product_fee_name_text_field = $_POST['product-fee-name'][ $post_id ];
        if( ! empty( $product_fee_name_text_field ) || get_post_meta( 
        $post_id, 'product-fee-name', true ) != '' ) {
            update_post_meta( $post_id, 'product-fee-name', esc_attr( $product_fee_name_text_field ) );
            $another_field_updated = true;
        }

使用Woocommerce
Woocommerce\u wp\u checkbox()
表单字段函数时,如果希望在默认情况下始终选中复选框,则将使用
'cbvalue'
数组参数,如:

// Check Box - Fee Multiply Option
woocommerce_wp_checkbox( array( 
    'id'            => 'product-fee-multiplier[' . $variation->ID . ']', 
    'label'         => __('Multiply Fee by Quantity', 'woocommerce-product-fees' ),
    'value'         => get_post_meta( $variation->ID, 'product-fee-multiplier', true ), 
    'cbvalue'       => get_post_meta( $variation->ID, 'product-fee-multiplier', true ), 
    'wrapper_class' => "product-fee-multiplier" , 
    'required'      => true
), $checked );

do_action( 'wcpf_add_variation_settings' );
这将允许您始终选中目标复选框


自woocommerce 3以来,这里有一个简单完整的“产品”职位类型工作示例:

// Displaying quantity setting fields on admin product pages
add_action( 'woocommerce_product_options_pricing', 'add_custom_field_product_options_pricing' );
function add_custom_field_product_options_pricing() {
    global $product_object;

    echo '</div><div class="options_group">';

    $values = $product_object->get_meta('_cutom_meta_key');

    woocommerce_wp_checkbox( array( // Checkbox.
        'id'            => '_cutom_meta_key',
        'label'         => __( 'Custom label', 'woocommerce' ),
        'value'         => empty($values) ? 'yes' : $values,
        'description'   => __( 'Enable this to make something.', 'woocommerce' ),
    ) );
}

// Save quantity setting fields values
add_action( 'woocommerce_admin_process_product_object', 'save_custom_field_product_options_pricing' );
function save_custom_field_product_options_pricing( $product ) {
    $product->update_meta_data( '_cutom_meta_key', isset($_POST['_cutom_meta_key']) ? 'yes' : 'no' );
}
//在管理产品页面上显示数量设置字段
添加操作('woocommerce\u product\u options\u pricing'、'add\u custom\u field\u product\u options\u pricing');
函数添加\自定义\字段\产品\选项\定价(){
全局$product\u对象;
回声';
$values=$product\U object->get\U meta(“cutom\U meta\U key”);
woocommerce\u wp\u复选框(数组(//复选框)。
'id'=>'\u cutom\u meta\u key',
'label'=>\('Custom label','woocommerce'),
'value'=>空($values)?'yes':$values,
'description'=>\('Enable this to make something','woocommerce'),
) );
}
//保存数量设置字段值
添加操作('woocommerce\u admin\u process\u product\u object'、'save\u custom\u field\u product\u options\u pricing');
函数保存\自定义\字段\产品\选项\定价($product){
$product->update_meta_数据('u cutom_meta_key',isset($_POST['u cutom_meta_key'])?'yes':'no');
}

代码进入活动子主题(或活动主题)的functions.php文件。已测试并正常工作。

如果您尝试阅读文档,您可以看到,该函数
woocommerce\u wp\u checkbox()
具有不同的内部参数,并使用
checked()
函数进行内部转换。 因此,如果
value
=
cbvalue
,则添加checked。 此外,您还可以使用param
custom\u属性添加自定义。
因此,有两种方法:

woocommerce_wp_checkbox( array( 
    'id'=> 'product-fee-multiplier[' . $variation->ID . ']', 
    'label' => __('Multiply Fee by Quantity', 'woocommerce-product-fees' ),
    'value' => get_post_meta( $variation->ID, 'product-fee-multiplier', true ), 
    'cbvalue' => get_post_meta( $variation->ID, 'product-fee-multiplier', true ), 
    'wrapper_class' => "product-fee-multiplier" , 
    'required'  => true
));
或:


如何在默认情况下进行检查?@MarcoPanichi在我的初始代码之后,我为您添加了一个工作示例$variation是什么?这个例子太糟糕了。糟糕极了。
woocommerce_wp_checkbox( array( 
    'id'=> 'product-fee-multiplier[' . $variation->ID . ']', 
    'label' => __('Multiply Fee by Quantity', 'woocommerce-product-fees' ),
    'value' => get_post_meta( $variation->ID, 'product-fee-multiplier', true ), 
    'custom_attributes' => 'checked',
    'wrapper_class' => "product-fee-multiplier" , 
    'required'  => true
));