Ejemplo n.º 1
0
    private function get_wvas_editor_tab_content($product_id, $attributes)
    {
        if (is_array($attributes) && !empty($attributes)) {
            if ($product_id) {
                $product = get_product($product_id);
                $visual_attr = $product ? get_post_meta($product->id, 'visual_attr', true) : array();
            } else {
                $visual_attr = get_option('visual_attr');
            }
            $skins_obj = new WVAS_Skin(false);
            $skins = $skins_obj->get_all();
            $wvas_templates_list = array_keys($skins);
            $skins_configurations = $this->get_skins_configurations();
            ?>
            <table class="wp-list-table widefat fixed wvas_table">
                <thead>
                    <tr>
                        <?php 
            if (!$product_id) {
                ?>
                        <th scope="col" id="cb" class="manage-column column-cb check-column" style=""><label class="screen-reader-text" for="cb-select-all-1">Select All</label><input id="cb-select-all-1" type="checkbox"></th>
                            <?php 
            }
            ?>
                        <th><?php 
            _e('Names', 'wvas');
            ?>
</th>
                        <th style="width: 50%;"><?php 
            _e('Attributes', 'wvas');
            ?>
</th>
                        <th><?php 
            _e('Skin', 'wvas');
            ?>
</th>
                    </tr>
                </thead>
            <?php 
            foreach ($attributes as $attribute_name => $attribute_values) {
                if (!empty($attribute_values)) {
                    $visual_attr_type = '';
                    $attribute_name_sanitized = sanitize_title($attribute_name);
                    if ($visual_attr && isset($visual_attr[$attribute_name_sanitized]['visual_attr_tpl'])) {
                        $skin_file = explode("|", $visual_attr[$attribute_name_sanitized]['visual_attr_tpl']);
                        if (!empty($skin_file[0]) && file_exists(WVA_SKINS_DIR . "/" . $skin_file[0])) {
                            $skin = new WVAS_Skin($visual_attr[$attribute_name_sanitized]['visual_attr_tpl']);
                            $visual_attr_type = $skin->data["Type"];
                        }
                    }
                    ?>
                    <tr>
                        <?php 
                    if (!$product_id) {
                        ?>
                            <th scope="row" class="check-column">
                                <input type="checkbox" name="<?php 
                        echo 'wvas-selections[' . $attribute_name_sanitized . '][active]';
                        ?>
" value="1">
                            </th>
                            <?php 
                    }
                    ?>
                        
                        <td> <strong><?php 
                    echo $key = wc_attribute_label($attribute_name);
                    //ucfirst(str_replace('pa_', '', $attribute_name));
                    ?>
</strong></td>
                        <td class="wvas_editor column-format">
                            <table>
                                <?php 
                    if (is_array($attribute_values) && !empty($attribute_values[0])) {
                        foreach ($attribute_values as $value) {
                            $sanitize_value = $value['val_slug'];
                            //esc_attr( sanitize_title( $value ) );
                            echo '<tr data-field_name = "visual_attr[' . $attribute_name_sanitized . '][' . $sanitize_value . ']" > <td> <strong>' . $value['val_label'] . ': </strong></td> <td class = "visual_attr_selector">';
                            if ($visual_attr_type == "Color") {
                                if (isset($visual_attr[$attribute_name_sanitized][$sanitize_value])) {
                                    echo '<input type="text" class="wvas-color-picker" name = "visual_attr[' . $attribute_name_sanitized . '][' . $sanitize_value . ']" value ="' . $visual_attr[$attribute_name_sanitized][$sanitize_value] . '" />';
                                } else {
                                    echo '<input type="text" class="wvas-color-picker" name = "visual_attr[' . $attribute_name_sanitized . '][' . $sanitize_value . ']" value ="#ffffff" />';
                                }
                            } elseif ($visual_attr_type == "Image") {
                                if (isset($visual_attr[$attribute_name_sanitized][$sanitize_value]) && wp_get_attachment_url($visual_attr[$attribute_name_sanitized][$sanitize_value])) {
                                    echo '<input type="hidden" name="visual_attr[' . $attribute_name_sanitized . '][' . $sanitize_value . ']" value="' . $visual_attr[$attribute_name_sanitized][$sanitize_value] . '"><input type="button" class="button wvas_set_icon" value="' . __('Set', 'wvas') . '" style="display: none;"><span><img class = "wvas_icon" width = "90px" src="' . wp_get_attachment_url($visual_attr[$attribute_name_sanitized][$sanitize_value]) . '" alt="icon" /><input type="button" class="button wvas_remove_icon" value="' . __('Remove', 'wvas') . '"></span>';
                                } else {
                                    echo '<input type="hidden" name="visual_attr[' . $attribute_name_sanitized . '][' . $sanitize_value . ']" ><input type="button" class="button wvas_set_icon" value="' . __('Set', 'wvas') . '"><br />';
                                }
                            } else {
                                //                                            echo'none';
                                //                                            echo '<input type="hidden" name="visual_attr['.$attribute_name_sanitized.']['.$sanitize_value.']" value = "default">';
                            }
                            echo '</td></tr>';
                        }
                    } else {
                        echo '<tr><td>' . __('No attribute values found.', 'wvas') . ' </td></tr>';
                    }
                    ?>
                            </table>
                        </td>
                        <td>
                            <select name="visual_attr[<?php 
                    echo $attribute_name_sanitized;
                    ?>
][visual_attr_tpl]" class="wvas-tpl-selector" >
                                <?php 
                    foreach ($wvas_templates_list as $tpl) {
                        $value = $tpl;
                        $label = $skins[$value]["Name"];
                        $selected_config = isset($visual_attr[$attribute_name_sanitized]['visual_attr_tpl']) && !empty($visual_attr[$attribute_name_sanitized]['visual_attr_tpl']) ? $visual_attr[$attribute_name_sanitized]['visual_attr_tpl'] : '';
                        $default_selected = $selected_config == $value . '|default' ? 'selected = "selected"' : '';
                        echo '<optgroup label = "' . $label . '">';
                        echo '<option value="' . $value . '|default" ' . $default_selected . '>Default</option>';
                        if (isset($skins_configurations[$value]) && !empty($skins_configurations[$value])) {
                            foreach ($skins_configurations[$value] as $config_id => $config_label) {
                                $selected = $selected_config == $value . '|' . $config_id ? 'selected = "selected"' : '';
                                echo '<option value="' . $value . '|' . $config_id . '" ' . $selected . ' .>' . $config_label . '</option>';
                            }
                        }
                        echo '</optgroup>';
                    }
                    ?>
                            </select>
                        </td>
                    </tr>                
                <?php 
                }
            }
            ?>
            </table>
            <?php 
            $img_span = '<span><img class = "wvas_icon" src="img_url" alt="photo" /><input type="button" class="button wvas_remove_icon" value="' . __('Remove', 'wvas') . '"></span>';
            $img_selector = '<input type="button" class="button wvas_set_icon" value="' . __('Set', 'wvas') . '">';
            $table_data = array('color_selector' => "<input type='text' class='wvas-color-picker' name ='field_name' value='#ffffff' />", "img_span" => $img_span, "img_selector" => $img_selector);
            ?>
            <script type="text/javascript">
            var table_data = <?php 
            echo json_encode($table_data);
            ?>
;
            var wvas_templates=<?php 
            echo json_encode($skins);
            ?>
;
            </script> 
            <?php 
        }
    }
Ejemplo n.º 2
0
 function display_visual_attr()
 {
     $product_id = get_the_ID();
     $is_active = get_post_meta($product_id, "wvas-activate", true);
     if (!$is_active) {
         return;
     }
     wp_enqueue_script('wc-add-to-cart-variation');
     $product = wc_get_product($product_id);
     //        $default_attributes = $product->get_variation_default_attributes();
     //            var_dump($default_attributes);
     //        $available_variations = $product->get_available_variations();
     //            var_dump($attributes);
     $usable_attributes = $this->extract_usable_attributes($product);
     $visual_attributes_meta = get_post_meta($product->id, "visual_attr", true);
     foreach ($usable_attributes as $attribute_name => $attribute_data) {
         $visual_attributes_meta = get_post_meta($product->id, "visual_attr", true);
         $serialized_attribute_name = sanitize_title(strtolower($attribute_name));
         $attribute_metas = $visual_attributes_meta[$serialized_attribute_name];
         $skin = $attribute_metas["visual_attr_tpl"];
         $skin_file = explode("|", $skin);
         if (!empty($skin_file[0]) && file_exists(WVA_SKINS_DIR . "/" . $skin_file[0])) {
             $skin_object = new WVAS_Skin($skin);
             //var_dump($skin_object);
             $html_code = $skin_object->get_skinned_attributes($product, $attribute_name, $attribute_data);
             $html_code .= ' <style type="text/css"> .single-product table.variations{  display: none !important; } </style>';
             $skin_configuration_styles = $skin_object->get_skin_configuration_styles();
             echo $skin_configuration_styles;
             echo $html_code;
         }
     }
     return;
 }
    /**
     * Builds the config design metabox content on the config edition page
     * @return type
     */
    public function get_config_metabox_content()
    {
        //            $tmp_id=  get_the_ID();
        //            if(isset($_GET["base-product"]))
        //                $base_product=$_GET["base-product"];
        //            else
        //                $base_product=  get_post_meta ($tmp_id,"base-product", true);
        //            if(empty($base_product))
        //            {
        //                echo __("No base product found.","wpd");
        //                return;
        //            }
        $skin_configuration_id = get_the_ID();
        $skin_configuration = get_post_meta($skin_configuration_id, 'wvas', TRUE);
        if (empty($skin_configuration)) {
            $skin_configuration = array();
        }
        //var_dump($skin_configuration);
        ob_start();
        ?>
            <div class="wrap">
                <div id="wvas-config-container">
                    <div class="configuration-container ">
                        <div>
                            <label>Skin</label>
                            <?php 
        $skins_obj = new WVAS_Skin(false);
        $skins = $skins_obj->get_all();
        $wvas_templates_list = array_keys($skins);
        $skins_select_array = array();
        foreach ($skins as $key => $value) {
            $skins_select_array[$key] = $value['Name'];
        }
        echo $this->build_html_dropdown('WVAS[skin]', '', '', $skins_select_array, isset($skin_configuration['skin']) ? $skin_configuration['skin'] : '');
        ?>

                        </div>
                    <div >
                    <div id="TabbedPanels1" class="TabbedPanels">

                        <ul class="TabbedPanelsTabGroup">
                            <li class="TabbedPanelsTab " tabindex="0"><?php 
        _e('Container', 'wvas');
        ?>
</li>
                            <li class="TabbedPanelsTab" tabindex="1"><?php 
        _e('Attribute', 'wvas');
        ?>
</li>
                        </ul>
                    <div class="TabbedPanelsContentGroup ">
                        <div class="TabbedPanelsContent">
                            <div id="TabbedPanels2" class="TabbedPanels">

                                <ul class="TabbedPanelsTabGroup">
                                    <li class="TabbedPanelsTab " tabindex="0"><?php 
        _e('Normal', 'wvas');
        ?>
</li>
                                    <li class="TabbedPanelsTab" tabindex="1"><?php 
        _e('Hover', 'wvas');
        ?>
</li>
                                </ul>
                                <div class="TabbedPanelsContentGroup ">
                                            <?php 
        $normal_style = array();
        if (isset($skin_configuration['styles']['container']['normal']) && !empty($skin_configuration['styles']['container']['normal'])) {
            $normal_style = $skin_configuration['styles']['container']['normal'];
        }
        $this->get_skin_configuration_form('container', 'normal', $normal_style);
        $hover_style = array();
        if (isset($skin_configuration['styles']['container']['on-hover']) && !empty($skin_configuration['styles']['container']['on-hover'])) {
            $hover_style = $skin_configuration['styles']['container']['on-hover'];
        }
        $this->get_skin_configuration_form('container', 'on-hover', $hover_style);
        ?>
                                </div>
                            </div>
                        </div>

                        <div class="TabbedPanelsContent">
                            <div id="TabbedPanels3" class="TabbedPanels">

                                <ul class="TabbedPanelsTabGroup">
                                    <li class="TabbedPanelsTab " tabindex="2"><?php 
        _e('Normal', 'wvas');
        ?>
</li>
                                    <li class="TabbedPanelsTab" tabindex="3"><?php 
        _e('Hover', 'wvas');
        ?>
</li>
                                    <li class="TabbedPanelsTab " tabindex="4"><?php 
        _e('Selected', 'wvas');
        ?>
</li>
                                </ul>
                                <div class="TabbedPanelsContentGroup ">
                                        <?php 
        $normal_style2 = array();
        if (isset($skin_configuration['styles']['attribute']['normal']) && !empty($skin_configuration['styles']['attribute']['normal'])) {
            $normal_style2 = $skin_configuration['styles']['attribute']['normal'];
        }
        $this->get_skin_configuration_form('attribute', 'normal', $normal_style2);
        $hover_style_2 = array();
        if (isset($skin_configuration['styles']['attribute']['on-hover']) && !empty($skin_configuration['styles']['attribute']['on-hover'])) {
            $hover_style_2 = $skin_configuration['styles']['attribute']['on-hover'];
        }
        $this->get_skin_configuration_form('attribute', 'on-hover', $hover_style_2);
        $selected_style = array();
        if (isset($skin_configuration['styles']['attribute']['selected']) && !empty($skin_configuration['styles']['attribute']['selected'])) {
            $selected_style = $skin_configuration['styles']['attribute']['selected'];
        }
        $this->get_skin_configuration_form('attribute', 'selected', $selected_style);
        ?>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>  
            
            </div>

        </div>
                </div>
            </div>

            <?php 
        $output = ob_get_contents();
        ob_end_clean();
        echo $output;
    }