Plugin Directory

Changeset 2561510


Ignore:
Timestamp:
07/09/2021 09:40:02 PM (5 years ago)
Author:
diurvan
Message:

versión 1.0.3 – Changes for dynamic states

Location:
wc-tracking-status/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • wc-tracking-status/trunk/includes/admin/track-config.php

    r2510360 r2561510  
    11<?php
     2
     3/******** SECCION TO OKTOSHOP DATA INPUT ***********/
     4add_action( 'init', 'diurvan_taxonomy_wc_tracking' );
     5function diurvan_taxonomy_wc_tracking()  {
     6    /** TAXONOMIAS DE ESTADOS **/
     7    $labels = array(
     8        'name'                       => 'WC_Tracking_States',
     9        'singular_name'              => 'WcTracking State',
     10        'menu_name'                  => 'WcTracking State',
     11        'all_items'                  => 'All WcTracking States',
     12        'parent_item'                => 'Parent WcTracking State',
     13        'parent_item_colon'          => 'Parent WcTracking State:',
     14        'new_item_name'              => 'New WcTracking State Name',
     15        'add_new_item'               => 'Add WcTracking State Item',
     16        'edit_item'                  => 'Edit WcTracking State',
     17        'update_item'                => 'Update WcTracking State',
     18        'separate_items_with_commas' => 'Separate WcTracking State with commas',
     19        'search_items'               => 'Search WcTracking States',
     20        'add_or_remove_items'        => 'Add or remove WcTracking States',
     21        'choose_from_most_used'      => 'Choose from the most used WcTracking States',
     22    );
     23    $args = array( 'labels' => $labels, 'hierarchical' => false, 'public' => true, 'show_ui' => true, 'show_admin_column' => false, 'show_in_nav_menus' => true, 'supports' => array( 'title', 'thumbnail' ) );
     24    register_taxonomy( 'diurvan_wctracking_state', 'product', $args );
     25    register_taxonomy_for_object_type( 'diurvan_wctracking_state', 'product' );
     26    /** TAXONOMIAS DE ESTADOS **/
     27}
     28add_action( 'diurvan_wctracking_state_add_form_fields', 'diurvan_wc_tracking_add_fields' );
     29function diurvan_wc_tracking_add_fields( $taxonomy ) {
     30    echo '<div class="form-field">
     31    <label for="diurvan_wc_tracking_orden">Orden de presentación</label>
     32    <input type="number" name="diurvan_wc_tracking_orden" id="diurvan_wc_tracking_orden" />
     33    </div>';
     34}
     35add_action( 'diurvan_wctracking_state_edit_form_fields', 'diurvan_wc_tracking_edit_fields', 10, 2 );
     36function diurvan_wc_tracking_edit_fields( $term, $taxonomy ) {
     37    $value_orden = get_term_meta( $term->term_id, 'diurvan_wc_tracking_orden', true );
     38    echo '<tr class="form-field">
     39        <th>
     40            <label for="diurvan_wc_tracking_orden">Orden de presentación</label>
     41        </th>
     42        <td>
     43            <input name="diurvan_wc_tracking_orden" id="diurvan_wc_tracking_orden" type="number" value="' . esc_attr( $value_orden ) .'" />
     44        </td>
     45    </tr>';
     46}
     47add_action( 'created_diurvan_wctracking_state', 'diurvan_wctracking_state_save_term_fields' );
     48add_action( 'edited_diurvan_wctracking_state', 'diurvan_wctracking_state_save_term_fields' );
     49function diurvan_wctracking_state_save_term_fields( $term_id ) {
     50    update_term_meta( $term_id, 'diurvan_wc_tracking_orden', sanitize_text_field( $_POST[ 'diurvan_wc_tracking_orden' ] ) );
     51}
     52
     53
     54
    255
    356//Añade el campo de Estado en el Admin de la Orden
     
    861        $current_status = get_post_meta( $order->get_id(), 'status_tracking', true );
    962        $current_status_history = get_post_meta( $order->get_id(), 'status_tracking_history', true );
     63
     64        $cat_args = array( 'orderby' => 'diurvan_wc_tracking_orden', 'order' => 'asc', 'hide_empty' => false );
     65        $diurvan_wctracking_state = get_terms( 'diurvan_wctracking_state', $cat_args );
     66        $diurvan_wctracking_state_final = array();
     67        foreach ( $diurvan_wctracking_state as $wc_tracking_state ) {
     68            $orden_tracking_cat = get_term_meta( $wc_tracking_state->term_id, 'diurvan_wc_tracking_orden', true );
     69            $diurvan_wctracking_state_final[$orden_tracking_cat] = (object) array(
     70                'name' => $wc_tracking_state->name,
     71                'slug' => $wc_tracking_state->slug,
     72                'term_id' => $wc_tracking_state->term_id
     73            );
     74        }
     75        ksort( $diurvan_wctracking_state_final, SORT_NUMERIC );
     76       
     77        if(count($diurvan_wctracking_state) > 0){
     78            $array_options = array();
     79            $array_options[0] = __( 'Select Status Tracking', 'diu-wc-tracking-status');
     80            foreach($diurvan_wctracking_state_final as $wc_tracking_state){
     81                $array_options[$wc_tracking_state->term_id] = $wc_tracking_state->name;
     82            }
     83        }
     84           
    1085        woocommerce_wp_select( array(
    1186                'id' => 'status_tracking',
     
    1388                'label' => 'Status Tracking:',
    1489                'value' => $current_status,
    15                 'options' => array(
    16                     '0' => __( 'Select Status Tracking', 'diu-wc-tracking-status'),
    17                     'Orden realizada' => __('Orden realizada', 'diu-wc-tracking-status'),
    18                     'Orden lista para enviar' => __('Orden lista para enviar', 'diu-wc-tracking-status'),
    19                     'Orden enviada' => __('Orden enviada', 'diu-wc-tracking-status'),
    20                     'Orden en pais de destino' => __('Orden en pais de destino', 'diu-wc-tracking-status'),
    21                     'Orden entregada' => __('Orden entregada', 'diu-wc-tracking-status')
    22                 ),
     90                'options' => $array_options,
    2391                'wrapper_class' => 'form-field-wide'
    2492            ) );
     
    92160                <div style="width:40%;display:inline-block;float:left">';
    93161       
    94                 $notes = wc_get_order_notes( array(
    95                     'order_id' => $order_id,
    96                     'type'     => '', // use 'internal' for admin and system notes, empty for all
    97                 ) );
     162            $html.='<table>
     163                    <tr>
     164                        <th>'.__("Product Name", "diu-wc-tracking-status").'</th>
     165                        <th>'.__("Quantity", "diu-wc-tracking-status").'</th>
     166                        <th>'.__("Sub Total", "diu-wc-tracking-status").'</th>
     167                        <th>'.__("Total", "diu-wc-tracking-status").'</th>
     168                    </tr>';
     169            if ( count( $orden->get_items() ) > 0 ) {
     170                foreach ( $orden->get_items() as $item_id => $item ) {
     171                    $product      = $item->get_product();
     172                    $item_name    = $item->get_name();
     173                    $quantity     = $item->get_quantity();
     174                    $line_subtotal     = $item->get_subtotal();
     175                    $line_total        = $item->get_total();
     176                    $html.='<tr>
     177                            <td>'.$item_name.'</td>
     178                            <td>'.$quantity.'</td>
     179                            <td>'.$line_subtotal.'</td>
     180                            <td>'.$line_total.'</td>
     181                        </tr>';
     182                }
     183            }
     184            else{
     185                $html.='<tr>
     186                            <td>'.__("No items", "diu-wc-tracking-status").'</td>
     187                        </tr>';
     188            }
     189        $html.='</table>';
    98190
    99                 if ( $notes ) {
    100                     foreach( $notes as $key => $note ) {
    101                         if($note->customer_note == true){
    102                             // system notes can be identified by $note->added_by == 'system'
    103                             $noteitem =  nl2br($note->content);
    104                         }
    105                     }
    106                 }
    107             $html .= '<span style="height: 50px;">'.$noteitem.'</span><br/>
    108                     </div>
    109                 </div>             
    110             </div>';       
     191        $html .= '</div>
     192            </div>             
     193        </div>';       
    111194        /*****/
    112195        $cabeceras= array('Content-Type: text/html; charset=UTF-8');
  • wc-tracking-status/trunk/includes/front/track-view.php

    r2510360 r2561510  
    2222       
    2323        if($orden){
    24             $estados = array( 20=>'Orden realizada', 40=>'Orden lista para enviar', 60=>'Orden enviada', 80=>'Orden en pais de destino', 100=>'Orden entregada' );
    2524            $current_status = get_post_meta( $order_id, 'status_tracking', true );
    26             $valor = 0;
    27             foreach ( $estados as $key => $value ) {
    28                 if ( $current_status == $value ) {
    29                     $valor = $key;
    30                     break;
     25            $cat_args = array( 'orderby' => 'name', 'order' => 'asc', 'hide_empty' => false );
     26            $diurvan_wctracking_state = get_terms( 'diurvan_wctracking_state', $cat_args );
     27            $diurvan_wctracking_state_final = array();
     28            foreach ( $diurvan_wctracking_state as $wc_tracking_state ) {
     29                $orden_tracking_cat = get_term_meta( $wc_tracking_state->term_id, 'diurvan_wc_tracking_orden', true );
     30                $diurvan_wctracking_state_final[$orden_tracking_cat] = (object) array(
     31                    'name' => $wc_tracking_state->name,
     32                    'slug' => $wc_tracking_state->slug,
     33                    'term_id' => $wc_tracking_state->term_id
     34                );
     35            }
     36            ksort( $diurvan_wctracking_state_final, SORT_NUMERIC );
     37            if(count($diurvan_wctracking_state_final) > 0){
     38                $estados = array(); $valor = 0; $indice = 1; $totalindice = 100/count($diurvan_wctracking_state_final);
     39                foreach($diurvan_wctracking_state_final as $wc_tracking_state){
     40                    $estados[$totalindice * $indice] = $wc_tracking_state->name;
     41                    if($current_status == $wc_tracking_state->term_id){
     42                        $valor = $totalindice * $indice;
     43                    }
     44                    $indice++;
    3145                }
    3246            }
     
    7690                    <br/>
    7791                    <progress id="progressBar" max="100" value="'.$valor.'" data="'.$current_status.'"></progress>
    78                     <div style="width:100%;float:center;text-align:center">
    79                         <div style="width:20%;float:left;margin-top: 20px;">
    80                             <span>'.$estados[20].'</span>
    81                         </div>
    82                         <div style="width:20%;float:left;margin-top: 20px;">
    83                             <span>'.$estados[40].'</span>
    84                         </div>
    85                         <div style="width:20%;float:left;margin-top: 20px;">
    86                             <span>'.$estados[60].'</span>
    87                         </div>
    88                         <div style="width:20%;float:left;margin-top: 20px;">
    89                             <span>'.$estados[80].'</span>
    90                         </div>
    91                         <div style="width:20%;float:left;margin-top: 20px;">
    92                             <span>'.$estados[100].'</span>
    93                         </div>
     92                    <div style="width:100%;float:center;text-align:center">';
     93
     94            if(count($diurvan_wctracking_state_final) > 0){
     95                $estados = array(); $valor = 0; $indice = 1; $totalindice = 100/count($diurvan_wctracking_state_final);
     96                foreach($diurvan_wctracking_state_final as $wc_tracking_state){
     97                    $html .= '  <div style="width:'.$totalindice.'%;float:left;margin-top: 20px;">
     98                            <span>'.$wc_tracking_state->name.'</span>
     99                        </div>';
     100                    $indice++;
     101                }
     102            }
     103           
     104            $html .= '
    94105                    </div>
    95106                </div>
  • wc-tracking-status/trunk/readme.txt

    r2510367 r2561510  
    2121Major features in Wc Tracking Status include:
    2222
    23 * Includes 5 steps to tracking: "Completed Order", "Order ready to send", "Sent order", "Order in destiny country" and "Delivered order"
     23* Includes unlimited statuses, configured by yourself.
    2424* Paint a graduant color depending from these status
    2525
    2626Tutorial video:
    27 [youtube https://www.youtube.com/watch?v=USOHmbdhVmU]
     27[youtube https://youtu.be/o7BQVMnkpjA]
    2828
    2929** Quick Links **
     
    6767== Changelog ==
    6868
     69= 1.0.3 =
     70*Release Date - 09th July, 2021*
     71
     72* A new taxonomy was included in the Products section that allows adding as many states as needed.
     73* The configured statuses are available when modifying the order, and are also displayed as a progress bar on the customer page.
     74
    6975= 1.0.2 =
    7076*Release Date - 06th April, 2021*
Note: See TracChangeset for help on using the changeset viewer.