0

I am adding custom fields in Woocommerce Variable Subscriptions and its working fine for all except for dropdown with ability to select multiple. Here is my code.

<?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) {

    echo '<strong>' . __("Mindesk e-Commerce", 'woocommerce') . '</strong>';

    

    // Mindesk User IDS 
    $mindesk_user_ids = get_post_meta($variation->ID, 'mindesk_user_ids', true);

    woocommerce_wp_select(
        array(
            'id' => "mindesk_user_ids{$loop}",
            'name' => "mindesk_user_ids[][{$loop}]",
            'wrapper_class' => 'product_custom_field form-row ',
            'class' => 'mindesk_select2',
            'label' => __('Mindesk User IDs', 'woocommerce'),
            'default' => $mindesk_user_ids,
            'class' => 'mindesk_select2',
            'options' => array(
                'Mon' => 'Monday',
                'Tue' => 'Tuesday',
                'Wed' => 'Wednesday',
                'Thu' => 'Thursday',
                'Fri' => 'Friday',
                'Sat' => 'Saturday',
                'Sun' => 'Sunday'
            ),
            'custom_attributes' => array('multiple' => 'multiple')
        )
    );
}

function save_WC_Product_Variable_Subscription_Variation_Custom_Fields($variation_id, $loop) {
    // Mindesk User IDs    
    $mindesk_user_ids = $_POST['mindesk_user_ids'][$loop];
    update_post_meta($variation_id, 'mindesk_user_ids', esc_attr($mindesk_user_ids));
}

As you can see here, I am showing select box and I am able to select multiple fields but when I save this, in my database its value saving as Array..

I have tried to replace my loop variable name something like 'name' => "mindesk_user_ids[{$loop}][]", but its not working .. I also want once saved, those values to set as selected.

Can someone guide me what I am doing wrong here?

Any guidance will be highly appreciated.

Thanks

enter image description here

Mittul At TechnoBrave
  • 1,142
  • 3
  • 25
  • 70

0 Answers0