Changeset 3316832
- Timestamp:
- 06/24/2025 09:22:20 AM (9 months ago)
- Location:
- order-picking-app/trunk
- Files:
-
- 4 edited
-
admin/partials/orderpickingapp-settings-page.php (modified) (2 diffs)
-
includes/class-orderpickingapp.php (modified) (8 diffs)
-
orderpickingapp.php (modified) (1 diff)
-
readme.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
order-picking-app/trunk/admin/partials/orderpickingapp-settings-page.php
r3313724 r3316832 260 260 </div> 261 261 <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">266 262 <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> 268 264 </div> 269 265 <div class="form-check"> … … 275 271 <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> 276 272 </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> 290 327 <h5>Packing order status (optional)</h5> 291 328 <table style="min-width: 350px;"> -
order-picking-app/trunk/includes/class-orderpickingapp.php
r3313724 r3316832 328 328 if( $picking_status == 'completed' && (!isset($user_claimed) || empty($user_claimed)) ){ 329 329 $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 } 330 337 } 331 338 … … 433 440 434 441 if( $data['status'] == 'completed' ){ 435 $Order->add_order_note('Order Picking App | Order p icking completed by ' . $appuser . '.');442 $Order->add_order_note('Order Picking App | Order packing completed by ' . $appuser . '.'); 436 443 $auto_completed_order = get_option('auto_completed_order'); 437 444 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 } 439 454 } 440 455 } 441 456 else { 442 457 $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']; 452 472 $Order->update_status($new_status, 'Order Picking App | Status changed'); 453 473 $this->log('Order ' . $order['orderid'] . ' status changed for ' . $order_shipping_method . ' to ' . $new_status, 'Info'); 454 474 } 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 } 460 482 } 461 483 … … 1090 1112 $picking_status = 'completed'; 1091 1113 if( $data['status'] == 'completed' ){ 1114 $this->log('Order packing completed for order: ' . $data['orderid'] . ' by ' . $data['appuser'], 'Info'); 1092 1115 $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');1094 1116 1095 1117 $enable_pickup_list = get_option('enable_pickup_list'); … … 1107 1129 } 1108 1130 } 1131 1109 1132 if( $data['status'] == 'picked_up' ){ 1110 1133 $Order->add_order_note('Order Picking App | Order pickup handled by ' . $data['appuser']); … … 1117 1140 1118 1141 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 } 1120 1150 } 1121 1151 … … 2156 2186 $Order->update_meta_data('batch_id', $BatchBoxCharacter . $BatchBoxCharacterSecond . '-' . $picking_batch); 2157 2187 $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 2158 2195 $Order->save(); 2159 2196 $total_orders++; … … 2284 2321 if( $picking_status == 'completed' && ( !isset($user_claimed) || empty($user_claimed) ) ){ 2285 2322 $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 } 2286 2329 } 2287 2330 … … 2820 2863 'total_picking_orders' => $total_picking_orders, 2821 2864 'total_backorders' => $total_backorders, 2865 'total_pickup_orders' => $total_pickup_orders, 2822 2866 'custom_field' => $custom_field, 2823 2867 'ordernote' => $ordernote, -
order-picking-app/trunk/orderpickingapp.php
r3313724 r3316832 3 3 * Plugin Name: Order Picking App 4 4 * 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. 75 * Version: 2.1.8 6 6 * Author: Arture | PHP Professionals 7 7 * Author URI: http://arture.nl -
order-picking-app/trunk/readme.txt
r3313724 r3316832 5 5 Requires at least: 6.0 6 6 Tested up to: 6.8.1 7 Stable tag: 2.1. 77 Stable tag: 2.1.8 8 8 Requires PHP: 8.0 9 9 License: GPLv2 or later … … 37 37 == Changelog == 38 38 39 = 2.1.8 = 40 * New settings for custom Woocommerce status change for Picking, Packing and Completed 41 39 42 = 2.1.7 = 40 43 * Pickup settings and flow
Note: See TracChangeset
for help on using the changeset viewer.