Plugin Directory

Changeset 3316832


Ignore:
Timestamp:
06/24/2025 09:22:20 AM (9 months ago)
Author:
arture
Message:

Version 2.1.8

Location:
order-picking-app/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • order-picking-app/trunk/admin/partials/orderpickingapp-settings-page.php

    r3313724 r3316832  
    260260                        </div>
    261261                        <div class="form-check">
    262                             <input type="checkbox" class="form-check-input" name="auto_completed_order" value="yes" <?php echo (isset($app_settings['auto_completed_order']) && $app_settings['auto_completed_order'] == 'yes')? 'checked' : ''; ?>>
    263                             <label  class="form-check-label" for="auto_completed_order"><?php echo __( 'Enable auto completed order after picking and packing', 'orderpickingapp' ); ?></label>
    264                         </div>
    265                         <div class="form-check">
    266262                            <input type="checkbox" class="form-check-input" name="skip_packing" value="yes" <?php echo (isset($app_settings['skip_packing']) && $app_settings['skip_packing'] == 'yes')? 'checked' : ''; ?>>
    267                             <label  class="form-check-label" for="skip_packing"><?php echo __( 'Skip packing and change fully picked order after picking to completed', 'orderpickingapp' ); ?></label>
     263                            <label  class="form-check-label" for="skip_packing"><?php echo __( 'Skip packing and change fully picked order after picking to completed. (Internal OPA state)', 'orderpickingapp' ); ?></label>
    268264                        </div>
    269265                        <div class="form-check">
     
    275271                            <label  class="form-check-label" for="disable_product_combining"><?php echo __( 'Disable product combining by SKU/ID and process each order product as individual', 'orderpickingapp' ); ?></label>
    276272                        </div>
    277                         <div class="form-check">
    278                             <input type="checkbox" class="form-check-input" name="enable_pickup_list" value="yes" <?php echo (isset($app_settings['enable_pickup_list']) && $app_settings['enable_pickup_list'] == 'yes')? 'checked' : ''; ?>>
    279                             <label  class="form-check-label" for="enable_pickup_list"><?php echo __( 'Enable pickup list. Please select a custom shipping method below for pickup!', 'orderpickingapp' ); ?></label>
    280                         </div>
    281                         <select name="pickup_list_method">
    282                             <option value="">Select pickup method</option>
    283                             <?php
    284                             foreach ($shipping_methods as $method_id => $method_name){
    285                                 echo '<option value="' . $method_id . '" ' . selected($method_id, $app_settings['pickup_list_method'], false) . '>' . esc_html($method_name) . '</option>';
    286                             }
    287                             ?>
    288                         </select>
    289 
     273                        <div style="border: 1px solid #575757; padding: 5px; margin-top: 5px;">
     274                            <strong style="font-size: 12px;">1. | Order status when order is claimed for picking (optional)</strong><br/>
     275                            <select name="picking_order_status">
     276                                <?php
     277                                echo '<option value="">No status change</option>';
     278                                foreach ($wc_order_statussen as $new_status => $new_name) {
     279                                    echo '<option value="' . esc_attr($new_status) . '" ' . selected($new_status, $app_settings['picking_order_status'], false) . '>' . esc_html($new_name) . '</option>';
     280                                }
     281                                ?>
     282                            </select>
     283                        </div>
     284                        <div style="border: 1px solid #575757; padding: 5px; margin-top: 5px;">
     285                            <strong style="font-size: 12px;">2. | Order status for packing (optional)</strong><br/>
     286                            <select name="packing_order_status">
     287                                <?php
     288                                echo '<option value="">No status change</option>';
     289                                foreach ($wc_order_statussen as $new_status => $new_name) {
     290                                    echo '<option value="' . esc_attr($new_status) . '" ' . selected($new_status, $app_settings['packing_order_status'], false) . '>' . esc_html($new_name) . '</option>';
     291                                }
     292                                ?>
     293                            </select>
     294                        </div>
     295                        <div style="border: 1px solid #575757; padding: 5px; margin-top: 5px;">
     296                            <strong style="font-size: 12px;">3. | Pickup list (optional)</strong>
     297                            <div class="form-check">
     298                                <input type="checkbox" class="form-check-input" name="enable_pickup_list" value="yes" <?php echo (isset($app_settings['enable_pickup_list']) && $app_settings['enable_pickup_list'] == 'yes')? 'checked' : ''; ?>>
     299                                <label  class="form-check-label" for="enable_pickup_list"><?php echo __( 'Enable pickup list. Please select a custom shipping method below for pickup!', 'orderpickingapp' ); ?></label>
     300                            </div>
     301                            <select name="pickup_list_method">
     302                                <option value="">Select pickup method</option>
     303                                <?php
     304                                foreach ($shipping_methods as $method_id => $method_name){
     305                                    echo '<option value="' . $method_id . '" ' . selected($method_id, $app_settings['pickup_list_method'], false) . '>' . esc_html($method_name) . '</option>';
     306                                }
     307                                ?>
     308                            </select>
     309                        </div>
     310                        <div style="border: 1px solid #575757; padding: 5px; margin-top: 5px;">
     311                            <strong style="font-size: 12px;">4. | Order status for completed (optional)</strong>
     312                            <div class="form-check">
     313                                <input type="checkbox" class="form-check-input" name="auto_completed_order" value="yes" <?php echo (isset($app_settings['auto_completed_order']) && $app_settings['auto_completed_order'] == 'yes')? 'checked' : ''; ?>>
     314                                <label  class="form-check-label" for="auto_completed_order"><?php echo __( 'Enable auto completed order after picking and packing', 'orderpickingapp' ); ?></label>
     315                            </div>
     316                            <strong style="font-size: 12px;">Change order status to:</strong>
     317                            <br/>
     318                            <select name="completed_order_status">
     319                                <?php
     320                                $selected_completed_order_status = !empty($app_settings['completed_order_status']) ? $app_settings['completed_order_status'] : 'wc-completed';
     321                                foreach ($wc_order_statussen as $new_status => $new_name) {
     322                                    echo '<option value="' . esc_attr($new_status) . '" ' . selected($new_status, $selected_completed_order_status, false) . '>' . esc_html($new_name) . '</option>';
     323                                }
     324                                ?>
     325                            </select>
     326                        </div>
    290327                        <h5>Packing order status (optional)</h5>
    291328                        <table style="min-width: 350px;">
  • order-picking-app/trunk/includes/class-orderpickingapp.php

    r3313724 r3316832  
    328328                            if( $picking_status == 'completed' && (!isset($user_claimed) || empty($user_claimed)) ){
    329329                                $picking_status = 'picking';
     330
     331                                $picking_order_status = get_option('picking_order_status');
     332                                if( !empty($picking_order_status) ) {
     333                                    $picking_order_status = str_replace('wc-', '', $picking_order_status);
     334                                    $open_order->update_status($picking_order_status, 'Order Picking App | Status changed');
     335                                    $open_order->save();
     336                                }
    330337                            }
    331338
     
    433440
    434441                                    if( $data['status'] == 'completed' ){
    435                                         $Order->add_order_note('Order Picking App | Order picking completed by ' . $appuser . '.');
     442                                        $Order->add_order_note('Order Picking App | Order packing completed by ' . $appuser . '.');
    436443                                        $auto_completed_order = get_option('auto_completed_order');
    437444                                        if (isset($data['status']) && $data['status'] == 'completed' && isset($auto_completed_order) && $auto_completed_order == 'yes') {
    438                                             $Order->update_status('completed', 'Order Picking App | Status changed');
     445
     446                                            $completed_order_status = get_option('completed_order_status');
     447                                            if( !empty($completed_order_status) ) {
     448                                                $completed_order_status = str_replace('wc-', '', $completed_order_status);
     449                                                $Order->update_status($completed_order_status, 'Order Picking App | Status changed');
     450                                            }
     451                                            else{
     452                                                $Order->update_status('completed', 'Order Picking App | Status changed');
     453                                            }
    439454                                        }
    440455                                    }
    441456                                    else {
    442457                                        $Order->add_order_note('Order Picking App | Order picking completed by ' . $appuser . '. Order now available for packing.');
    443                                     }
    444 
    445                                     $shipping_methods = $Order->get_shipping_methods();
    446                                     $order_status_mapping = get_option('packing_order_status_mapping', []);
    447                                     if( is_array($shipping_methods) && !empty($shipping_methods) ) {
    448                                         $first_shipping_method = reset($shipping_methods);
    449                                         $order_shipping_method = $first_shipping_method->get_method_id();
    450                                         if (isset($order_status_mapping[$order_shipping_method]) && !empty($order_status_mapping[$order_shipping_method])) {
    451                                             $new_status = $order_status_mapping[$order_shipping_method];
     458
     459                                        $shipping_methods = $Order->get_shipping_methods();
     460                                        $order_status_mapping = get_option('packing_order_status_mapping', []);
     461                                        if( is_array($shipping_methods) && !empty($shipping_methods) ) {
     462                                            $first_shipping_method = reset($shipping_methods);
     463                                            $order_shipping_method = $first_shipping_method->get_method_id();
     464                                            if (isset($order_status_mapping[$order_shipping_method]) && !empty($order_status_mapping[$order_shipping_method])) {
     465                                                $new_status = $order_status_mapping[$order_shipping_method];
     466                                                $Order->update_status($new_status, 'Order Picking App | Status changed');
     467                                                $this->log('Order ' . $order['orderid'] . ' status changed for ' . $order_shipping_method . ' to ' . $new_status, 'Info');
     468                                            }
     469                                        }
     470                                        elseif( isset($order_status_mapping['default']) && !empty($order_status_mapping['default']) ){
     471                                            $new_status = $order_status_mapping['default'];
    452472                                            $Order->update_status($new_status, 'Order Picking App | Status changed');
    453473                                            $this->log('Order ' . $order['orderid'] . ' status changed for ' . $order_shipping_method . ' to ' . $new_status, 'Info');
    454474                                        }
    455                                     }
    456                                     elseif( isset($order_status_mapping['default']) && !empty($order_status_mapping['default']) ){
    457                                         $new_status = $order_status_mapping['default'];
    458                                         $Order->update_status($new_status, 'Order Picking App | Status changed');
    459                                         $this->log('Order ' . $order['orderid'] . ' status changed for ' . $order_shipping_method . ' to ' . $new_status, 'Info');
     475                                        else{
     476                                            $packing_order_status = get_option('packing_order_status');
     477                                            if( !empty($packing_order_status) ) {
     478                                                $packing_order_status = str_replace('wc-', '', $packing_order_status);
     479                                                $Order->update_status($packing_order_status, 'Order Picking App | Status changed');
     480                                            }
     481                                        }
    460482                                    }
    461483
     
    10901112                            $picking_status = 'completed';
    10911113                            if( $data['status'] == 'completed' ){
     1114                                $this->log('Order packing completed for order:  ' . $data['orderid'] . ' by ' . $data['appuser'], 'Info');
    10921115                                $Order->add_order_note('Order Picking App | Order packing completed by ' . $data['appuser']);
    1093                                 $this->log('Order packing completed for order:  ' . $data['orderid'] . ' by ' . $data['appuser'], 'Info');
    10941116
    10951117                                $enable_pickup_list = get_option('enable_pickup_list');
     
    11071129                                }
    11081130                            }
     1131
    11091132                            if( $data['status'] == 'picked_up' ){
    11101133                                $Order->add_order_note('Order Picking App | Order pickup handled by ' . $data['appuser']);
     
    11171140
    11181141                            if( $data['status'] == 'completed' && isset($auto_completed_order) && $auto_completed_order == 'yes') {
    1119                                 $Order->update_status('completed', 'Order Picking App | Status changed');
     1142                                $completed_order_status = get_option('completed_order_status');
     1143                                if( !empty($completed_order_status) ) {
     1144                                    $completed_order_status = str_replace('wc-', '', $completed_order_status);
     1145                                    $Order->update_status($completed_order_status, 'Order Picking App | Status changed');
     1146                                }
     1147                                else{
     1148                                    $Order->update_status('completed', 'Order Picking App | Status changed');
     1149                                }
    11201150                            }
    11211151
     
    21562186                                    $Order->update_meta_data('batch_id', $BatchBoxCharacter . $BatchBoxCharacterSecond . '-' . $picking_batch);
    21572187                                    $Order->add_order_note('Order Picking App | Order picking started by user: ' . $appuser);
     2188
     2189                                    $picking_order_status = get_option('picking_order_status');
     2190                                    if( !empty($picking_order_status) ) {
     2191                                        $picking_order_status = str_replace('wc-', '', $picking_order_status);
     2192                                        $Order->update_status($picking_order_status, 'Order Picking App | Status changed');
     2193                                    }
     2194
    21582195                                    $Order->save();
    21592196                                    $total_orders++;
     
    22842321                            if( $picking_status == 'completed' && ( !isset($user_claimed) || empty($user_claimed) ) ){
    22852322                                $picking_status = 'picking';
     2323
     2324                                $picking_order_status = get_option('picking_order_status');
     2325                                if( !empty($picking_order_status) ) {
     2326                                    $picking_order_status = str_replace('wc-', '', $picking_order_status);
     2327                                    $open_order->update_status($picking_order_status, 'Order Picking App | Status changed');
     2328                                }
    22862329                            }
    22872330
     
    28202863                        'total_picking_orders' => $total_picking_orders,
    28212864                        'total_backorders' => $total_backorders,
     2865                        'total_pickup_orders' => $total_pickup_orders,
    28222866                        'custom_field' => $custom_field,
    28232867                        'ordernote' => $ordernote,
  • order-picking-app/trunk/orderpickingapp.php

    r3313724 r3316832  
    33 * Plugin Name:       Order Picking App
    44 * Description:       Make your life easier by using the Orderpicking App. You'll never be inefficient if the Orderpicking App is installed in your store. We assist you in all aspects of your webshop. From intelligent selecting to order packing, we have you covered. Connecting the Orderpicking App to your Woocommerce webshop is simple and quick. Within an hour, you'll be online with the Orderpicking App. You're able to pick and pack your orders three times faster and with greater accuracy.
    5  * Version:           2.1.7
     5 * Version:           2.1.8
    66 * Author:            Arture | PHP Professionals
    77 * Author URI:        http://arture.nl
  • order-picking-app/trunk/readme.txt

    r3313724 r3316832  
    55Requires at least: 6.0
    66Tested up to: 6.8.1
    7 Stable tag: 2.1.7
     7Stable tag: 2.1.8
    88Requires PHP: 8.0
    99License: GPLv2 or later
     
    3737== Changelog ==
    3838
     39= 2.1.8 =
     40* New settings for custom Woocommerce status change for Picking, Packing and Completed
     41
    3942= 2.1.7 =
    4043* Pickup settings and flow
Note: See TracChangeset for help on using the changeset viewer.