2016-04-14 2 views
-3

Hilf mir bitte!WooCommerce: Ändern der Kategorie-Checkboxen zu Drop-Downs

Ich muss die Kategorie Kontrollkästchen zu Drop-Down auf der WooCommerce Add Produktseite ändern. Der Benutzer sollte nur eine Kategorie auswählen können.

Wenn der Benutzer eine Kategorie auswählt, sollten alle Unterkategorien der gewählten Kategorie in der nächsten Dropdown-Liste sein. Der Benutzer sollte nur eine Unterkategorie auswählen können.

Dann muss ich diese zwei Dropdown-Menüs unter "Produktdaten" Drop-Down.

  1. Wie entferne ich den Block "Produktkategorien"?
  2. Wie füge ich dem Dropdown-Menü "Produktdaten" Kategorien hinzu?
  3. Wie lege ich Unterkategorien im zweiten Dropdown-Menü fest, abhängig von der Kategorie, die im ersten Dropdown-Menü ausgewählt wurde?

Categories Image

+0

Das, was Sie für die Nachfrage sind, ist viel Entwicklungsarbeit Job. Es ist nicht nur eine Frage für ein Problem, das Sie während Ihres Jobs haben. Dazu musst du das Plugin modifizieren, damit du besser einen Entwickler findest, der das macht. –

Antwort

0
  1. Wie ich "Produktkategorien" Block entferne?

    function remove_custom_meta_box() { 
        remove_meta_box('{taxonomy-name}div', 'product', 'side'); 
    } 
    add_action('admin_menu', 'remove_custom_meta_box'); 
    
  2. Wie füge ich Kategorien Drop-Down zum "Produktdaten" -Block hinzu?

    und

  3. Wie platziere ich Unterkategorien in der zweiten Dropdown-abhängig von der Kategorie in der ersten Dropdown-ausgewählt?

    function categories_dropdown_metabox() { 
        add_meta_box('custom-taxonomy-dropdown', 'Product Category', 'taxonomy_dropdowns_box', 'product', 'side', 'high'); 
    } 
    
    function taxonomy_dropdowns_box($post) { 
        $terms  = get_terms('product_cat', 'hide_empty=0'); 
        $object_terms = wp_get_object_terms($post->ID, 'product_cat', array('fields'=>'ids')); 
    
        <script type="text/javascript"> 
         jQuery(document).ready(function() { 
          jQuery('#product-category').change(function() { 
           var product = jQuery('#product-category').val(); 
           if (product == '0') { 
            jQuery('#prodcatoptions').html(''); 
             jQuery('#categorycontainer').css('display', 'none'); 
           } else { 
            var data = { 
             'action':'get_product_categories', 
             'product':product, 
             'dropdown-nonce': jQuery('#dropdown-nonce').val() 
            }; 
            jQuery.post(ajaxurl, data, function(response){ 
             jQuery('#prodcatoptions').html(response); 
             jQuery('#categorycontainer').css('display', 'inline'); 
            }); 
           } 
          }); 
         }); 
        </script>  
    
        <div> 
         <span>Category:</span> 
         <select required id='product-category' name='prodcategory[]'> 
          <option value=''>Choose category</option> 
          <?php 
          foreach ($terms as $term) { 
           if ($term->parent == 0) { 
            if (in_array($term->term_id, $object_terms)) { 
             $parent_id = $term->term_id; 
             echo "<option value='{$term->term_id}' selected='selected'>{$term->name}</option>"; 
            } else { 
             echo "<option value='{$term->term_id}'>{$term->name}</option>"; 
            } 
           } 
          } 
          ?> 
         </select> 
        </div> 
        <div id='categorycontainer' <?php if (!isset($parent_id)) { echo "style='display: none;'"; }?> > 
         <span>Subcategory:</span> 
         <select required id='prodcatoptions' name='prodcategory[]'> 
          <?php 
          if (isset($parent_id)) { 
           $models = get_terms('product_cat', 'hide_empty=0&child_of='.$parent_id); 
    
           foreach ($models as $model) { 
            if (in_array($model->term_id, $object_terms)) { 
             echo "<option value='{$model->term_id}' selected='selected'>{$model->name}</option>"; 
            } else { 
             echo "<option value='{$model->term_id}'>{$model->name}</option>"; 
            } 
           } 
    
          } 
          ?> 
         </select> 
        </div> 
        <?php 
    } 
    
    add_action('add_meta_boxes', 'categories_dropdown_metabox'); 
    
    function save_my_custom_taxonomy($post_id) { 
        if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { 
         return; 
        }  
        if (!wp_verify_nonce($_POST['dropdown-nonce'], 'custom-dropdown')) { 
         return; 
        } 
        $product_cat = array_map('intval', $_POST['prodcategory']); 
        wp_set_object_terms($post_id, $product_cat, 'product_cat'); 
    } 
    
    add_action('save_post','save_my_custom_taxonomy'); 
    
    function get_product_categories() { 
        check_ajax_referer('custom-dropdown', 'dropdown-nonce'); 
        if (isset($_POST['product'])) { 
         $models = get_terms('product_cat', 'hide_empty=0&child_of='. $_POST['product']); 
         echo "<option value=''>Choose subcategory</option>"; 
         foreach ($models as $model) { 
          echo "<option value='{$model->term_id}'>{$model->name}</option>"; 
         } 
        } 
        die(); 
    } 
    
    add_action('wp_ajax_get_product_categories', 'get_product_categories');