Changeset 3243323
- Timestamp:
- 02/19/2025 02:30:18 PM (14 months ago)
- Location:
- voo-shipping
- Files:
-
- 35 added
- 6 edited
-
tags/3.0.2 (added)
-
tags/3.0.2/includes (added)
-
tags/3.0.2/includes/config.php (added)
-
tags/3.0.2/includes/custom_admin_country_states.php (added)
-
tags/3.0.2/includes/helper.php (added)
-
tags/3.0.2/includes/main_menu.php (added)
-
tags/3.0.2/includes/orders_page.php (added)
-
tags/3.0.2/includes/resources (added)
-
tags/3.0.2/includes/resources/custom_sideup_areas.php (added)
-
tags/3.0.2/includes/sideup_shipping_settings.php (added)
-
tags/3.0.2/public (added)
-
tags/3.0.2/public/css (added)
-
tags/3.0.2/public/css/__bootstrap.min.css (added)
-
tags/3.0.2/public/css/bootstrap.min.css (added)
-
tags/3.0.2/public/css/sweetalert2.min.css (added)
-
tags/3.0.2/public/img (added)
-
tags/3.0.2/public/img/favicon.ico (added)
-
tags/3.0.2/public/img/logo.svg (added)
-
tags/3.0.2/public/img/refresh.png (added)
-
tags/3.0.2/public/img/sideup-icon.png (added)
-
tags/3.0.2/public/img/sideup.png (added)
-
tags/3.0.2/public/img/sideup.svg (added)
-
tags/3.0.2/public/img/voo.svg (added)
-
tags/3.0.2/public/img/voo1.jpg (added)
-
tags/3.0.2/public/img/voo1.svg (added)
-
tags/3.0.2/public/img/voo2.svg (added)
-
tags/3.0.2/public/js (added)
-
tags/3.0.2/public/js/areaMap.json (added)
-
tags/3.0.2/public/js/side-up-manger.js (added)
-
tags/3.0.2/public/js/sweetalert2.min.js (added)
-
tags/3.0.2/readme.txt (added)
-
tags/3.0.2/sideup.php (added)
-
tags/3.0.2/uninstall.php (added)
-
tags/3.0.2/views (added)
-
tags/3.0.2/views/ship_model.php (added)
-
trunk/includes/config.php (modified) (1 diff)
-
trunk/includes/orders_page.php (modified) (1 diff)
-
trunk/includes/resources/custom_sideup_areas.php (modified) (7 diffs)
-
trunk/public/js/areaMap.json (modified) (1 diff)
-
trunk/public/js/side-up-manger.js (modified) (11 diffs)
-
trunk/views/ship_model.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
voo-shipping/trunk/includes/config.php
r3242613 r3243323 1 1 <?php 2 2 3 define('SIDEUP_API_URL', 'https://portal.beta.eg.sideup.co/api/');//prod4 //define('SIDEUP_API_URL', 'https://sa.dev.sideup.org/api/');//dev3 //define('SIDEUP_API_URL', 'https://portal.beta.eg.sideup.co/api/');//prod 4 define('SIDEUP_API_URL', 'https://eg.dev.sideup.org/api/');//dev 5 5 6 6 -
voo-shipping/trunk/includes/orders_page.php
r3242613 r3243323 78 78 return; 79 79 } 80 81 $orders = wc_get_orders(array('return' => 'ids')); 80 $orders = wc_get_orders([ 81 'return' => 'ids', 82 'limit' => 15, // Change to desired per_page value 83 ]); 82 84 if (empty($orders)) { 83 85 return; 84 86 } 87 $page = isset($_GET['paged']) ? intval($_GET['paged']) : 1; // Get current page from URL 88 89 $orders = wc_get_orders([ 90 'return' => 'ids', 91 'limit' => 20, // Matches WooCommerce per-page setting 92 'page' => $page, 93 ]); 85 94 86 95 // Prepare keys for the API request -
voo-shipping/trunk/includes/resources/custom_sideup_areas.php
r3242613 r3243323 5 5 'key' => "5th Settlement", 6 6 'name' => "الحي الخامس", // 7 'value' => " CAIRO /5TH SETTLEMENT"7 'value' => "5TH SETTLEMENT" 8 8 ], 9 9 [ 10 10 'key' => "Abbaseya", 11 11 'name' => "العباسية", // 12 'value' => " CAIRO /ABBASEYA"12 'value' => "ABBASEYA" 13 13 ], 14 14 [ 15 15 'key' => "Downtown", 16 16 'name' => "وسط البلد", // 17 'value' => " CAIRO /DOWNTOWN"17 'value' => "DOWNTOWN" 18 18 ], 19 19 [ 20 20 'key' => "El Manyal", 21 21 'name' => "المنيل", // 22 'value' => " CAIRO /EL MANYAL"22 'value' => "EL MANYAL" 23 23 ], 24 24 [ 25 25 'key' => "El Salam City", 26 26 'name' => "مدينة السلام", // 27 'value' => " CAIRO /EL SALAM CITY"27 'value' => "EL SALAM CITY" 28 28 ], 29 29 [ 30 30 'key' => "Heliopolis", 31 31 'name' => "هليوبوليس", // 32 'value' => " CAIRO /HELIOPOLIS"32 'value' => "HELIOPOLIS" 33 33 ], 34 34 [ 35 35 'key' => "Maadi", 36 36 'name' => "المعادي", // 37 'value' => " CAIRO /MAADI"37 'value' => "MAADI" 38 38 ], 39 39 [ 40 40 'key' => "Madinaty", 41 41 'name' => "مدينتي", // 42 'value' => " CAIRO /MADINATY"42 'value' => "MADINATY" 43 43 ], 44 44 [ 45 45 'key' => "Mohandeseen", 46 46 'name' => "المهندسين", // 47 'value' => " CAIRO /MOHANDSEEN"47 'value' => "MOHANDSEEN" 48 48 ], 49 49 [ 50 50 'key' => "Mokatam", 51 51 'name' => "المقطم", // 52 'value' => " CAIRO /MOKATAM"52 'value' => " MOKATAM" 53 53 ], 54 54 [ 55 55 'key' => "Nasr City", 56 56 'name' => "مدينة نصر", // 57 'value' => " CAIRO /NASR CITY"57 'value' => "NASR CITY" 58 58 ], 59 59 [ 60 60 'key' => "New Cairo", 61 61 'name' => "القاهرة الجديدة", // 62 'value' => " CAIRO /NEW CAIRO"62 'value' => "NEW CAIRO" 63 63 ], 64 64 [ 65 65 'key' => "Rehab", 66 66 'name' => "الرحاب", // 67 'value' => " CAIRO /REHAB"67 'value' => "REHAB" 68 68 ], 69 69 [ 70 70 'key' => "Shubra", 71 71 'name' => "شبرا", // 72 'value' => " CAIRO /SHUBRA"72 'value' => "SHUBRA" 73 73 ], 74 74 [ 75 75 'key' => "Shubra El Kheima", 76 76 'name' => "شبرا الخيمة", // 77 'value' => " CAIRO /SHUBRA EL KHEIMA"77 'value' => "SHUBRA EL KHEIMA" 78 78 ], 79 79 [ 80 80 'key' => "Zamalek", 81 81 'name' => "الزمالك", // 82 'value' => " CAIRO /ZAMALEK"82 'value' => "ZAMALEK" 83 83 ], 84 84 [ 85 85 'key' => "al badrashin", 86 86 'name' => "البدرشين", // 87 'value' => " CAIRO /AL BADRASHIN"87 'value' => "AL BADRASHIN" 88 88 ], 89 89 [ 90 90 'key' => "badr city", 91 91 'name' => "مدينة بدر", // 92 'value' => " CAIRO /BADR CITY"92 'value' => "BADR CITY" 93 93 ], 94 94 [ 95 95 'key' => "el obour city", 96 96 'name' => "مدينة العبور", // 97 'value' => " CAIRO /EL OBOUR CITY"97 'value' => "EL OBOUR CITY" 98 98 ], 99 99 [ 100 100 'key' => "sherouk city", 101 101 'name' => "مدينة الشروق", // 102 'value' => " CAIRO /SHEROUK CITY"102 'value' => "SHEROUK CITY" 103 103 ], 104 104 [ 105 105 'key' => "al matariyyah", 106 106 'name' => "المطرية", // 107 'value' => " CAIRO /AL MATARIYYAH"107 'value' => "AL MATARIYYAH" 108 108 ], 109 109 [ 110 110 'key' => "el-marg", 111 111 'name' => "المطرية", // 112 'value' => " CAIRO /EL-MARG"112 'value' => "EL-MARG" 113 113 ], 114 114 [ 115 115 'key' => "gesr al suez", 116 116 'name' => "جسر السويس", // 117 'value' => " CAIRO /GESR AL SUEZ"117 'value' => "GESR AL SUEZ" 118 118 ], 119 119 [ 120 120 'key' => "Helwan", 121 121 'name' => "حلوان", // 122 'value' => "HELWAN / HELWAN"122 'value' => "HELWAN" 123 123 ], 124 124 [ 125 125 'key' => "15 of may city", 126 126 'name' => "مدينة 15 مايو", // 127 'value' => " HELWAN /15 OF MAY CITY"127 'value' => "15 OF MAY CITY" 128 128 ], 129 129 … … 131 131 'key' => "Mohandeseen", 132 132 'name' => "المهندسين", // 133 'value' => " GIZA /MOHANDSEEN"133 'value' => "MOHANDSEEN" 134 134 ], 135 135 [ 136 136 'key' => "Haram", 137 137 'name' => "الهرم", // 138 'value' => " GIZA /HARAM"138 'value' => "HARAM" 139 139 ], 140 140 [ 141 141 'key' => "Faisal", 142 142 'name' => "فيصل", // 143 'value' => " GIZA /FAISAL"143 'value' => "FAISAL" 144 144 ], 145 145 [ 146 146 'key' => "Imbaba", 147 147 'name' => "امبابة", // 148 'value' => " GIZA /IMBABA"148 'value' => "IMBABA" 149 149 ], 150 150 [ 151 151 'key' => "Dokki", 152 152 'name' => "الدقي", // 153 'value' => " GIZA /DOKKI"153 'value' => "DOKKI" 154 154 ], 155 155 [ 156 156 'key' => "Elwahat", 157 157 'name' => "الواحات", // 158 'value' => " GIZA /ELWAHAT"158 'value' => "ELWAHAT" 159 159 ], 160 160 [ 161 161 'key' => "al ayat", 162 162 'name' => "الوايات", // 163 'value' => " GIZA /AL AYAT"163 'value' => "AL AYAT" 164 164 ], 165 165 [ 166 166 'key' => "ausim (giza)", 167 167 'name' => "أوسيم (جيزة)", // 168 'value' => " GIZA /AUSIM (GIZA)"168 'value' => "AUSIM (GIZA)" 169 169 ], 170 170 [ 171 171 'key' => "el saff", 172 172 'name' => "الصف", // 173 'value' => " GIZA /EL SAFF"173 'value' => "EL SAFF" 174 174 ], 175 175 [ 176 176 'key' => "el-hawamdeyya", 177 177 'name' => "الهوامدية", // 178 'value' => " GIZA / EL-HAWAMDEYYA"178 'value' => "L-HAWAMDEYYA" 179 179 ], 180 180 [ 181 181 'key' => "hadayek el ahram", 182 182 'name' => "حدائق الأهرام", // 183 'value' => " GIZA /HADAYEK EL AHRAM"183 'value' => "HADAYEK EL AHRAM" 184 184 ], 185 185 // … … 187 187 'key' => "6th of October City", 188 188 'name' => "مدينة 6 أكتوبر", // 189 'value' => "6TH OF OCTOBER / 6TH OF OCTOBERCITY"189 'value' => "6TH OF OCTOBER CITY" 190 190 ], 191 191 [ 192 192 'key' => "Sheikh Zayed", 193 193 'name' => "الشيخ زايد", // 194 'value' => " 6TH OF OCTOBER /SHEIKH ZAYED"194 'value' => "SHEIKH ZAYED" 195 195 ], 196 196 … … 198 198 'key' => "Alexandria", 199 199 'name' => "الإسكندرية", // 200 'value' => "ALEXANDRIA / ALEXANDRIA"200 'value' => "ALEXANDRIA" 201 201 ], 202 202 [ 203 203 'key' => "North Coast", 204 204 'name' => "الساحل الشمالي", // 205 'value' => " ALEXANDRIA /NORTH COAST"205 'value' => "NORTH COAST" 206 206 ], 207 207 // … … 209 209 'key' => "Tanta", 210 210 'name' => "طنطا", // 211 'value' => " GHARBIA /TANTA"211 'value' => "TANTA" 212 212 ], 213 213 [ 214 214 'key' => "Mahla", 215 215 'name' => "المحلة", // 216 'value' => " GHARBIA /MAHLA"216 'value' => "MAHLA" 217 217 ], 218 218 … … 336 336 'key' => "New Valley", 337 337 'name' => "الوادي الجديد", // 338 'value' => " NEW VALLEY /EL WADI EL GEDID"338 'value' => "EL WADI EL GEDID" 339 339 ], 340 340 [ … … 351 351 'key' => "Sokhna", 352 352 'name' => "السويس / العين السخنة", // 353 'value' => " SOKHNA /EL AIN EL SOKHNA"353 'value' => "EL AIN EL SOKHNA" 354 354 ], 355 355 [ -
voo-shipping/trunk/public/js/areaMap.json
r3242613 r3243323 26 26 "suez": 44, 27 27 "Qalioub": 47, 28 "Quliob": 47, 28 29 "Monofia": 48, 29 30 "Mansoura": 50, -
voo-shipping/trunk/public/js/side-up-manger.js
r3242746 r3243323 51 51 } 52 52 }) 53 .done(function (response) {54 let orderData = Object.values(response.data)[0];55 56 if (orderData && orderData.prices) {57 let carriersOptions = '';58 59 Object.entries(orderData.prices).forEach(([courier, price]) => {60 carriersOptions += `61 <div style="display:inline-block; margin-right: 10px;">62 <input type="radio" name="carrier_${orderId}" value="${courier}" class=".courierSelection" data-order-id="${orderId}" id="carrier_${orderId}">63 <label for="carrier_${orderId}" class="carrier_prices_${orderId}" data-value="${price}">64 ${courier} - ${price} ${currency}65 </label>66 </div>67 `;68 });69 70 couriersPricesContainer.html(carriersOptions);71 } else {72 couriersPricesContainer.html('<span class="text-danger">No pricing data available.</span>');73 }74 })75 .fail(function (jqXHR) {76 couriersPricesContainer.html('<span class="text-danger">Failed to fetch courier prices.</span>');77 console.error("AJAX Error:", jqXHR.responseText);78 });53 .done(function (response) { 54 let orderData = Object.values(response.data)[0]; 55 56 if (orderData && orderData.prices) { 57 let carriersOptions = ''; 58 59 Object.entries(orderData.prices).forEach(([courier, price]) => { 60 carriersOptions += ` 61 <div style="display:inline-block; margin-right: 10px;"> 62 <input type="radio" name="carrier_${orderId}" value="${courier}" class=".courierSelection" data-order-id="${orderId}" id="carrier_${orderId}"> 63 <label for="carrier_${orderId}" class="carrier_prices_${orderId}" data-value="${price}"> 64 ${courier} - ${price} ${currency} 65 </label> 66 </div> 67 `; 68 }); 69 70 couriersPricesContainer.html(carriersOptions); 71 } else { 72 couriersPricesContainer.html('<span class="text-danger">No pricing data available.</span>'); 73 } 74 }) 75 .fail(function (jqXHR) { 76 couriersPricesContainer.html('<span class="text-danger">Failed to fetch courier prices.</span>'); 77 console.error("AJAX Error:", jqXHR.responseText); 78 }); 79 79 } 80 80 … … 90 90 let totalPrice = $(this).data('total-price'); 91 91 let dropArea = $(this).data('drop-area'); 92 let products = $(this).data('products'); 92 93 let totalPriceContext = $(this).data('total-price-context'); 93 94 let customerName = $(this).data('customer-name'); … … 95 96 let customerShippingPhone = $(this).data('customer-phone'); 96 97 97 // $('.phone_' + orderId).val(customerShippingPhone);98 // $('.phone_' + orderId).val(customerShippingPhone); 98 99 // let customerPhone = $('.phone_' + orderId).val(); 99 100 let address = $(this).data('address'); … … 106 107 107 108 let model = ` 108 <div style="max-height: 400px; overflow-y: auto;"> 109 <table class="table table-borderless table-striped table-hover"> 110 <tr class=""> 111 <th style="width: 10%;">ID</th> 112 <th style="width: 15%;">Customer Name</th> 113 <th style="width: 10%;">Phone</th> 114 <th style="width: 15%;">Payment Method</th> 115 <th style="width: 10%;">Total Cost</th> 116 <th style="width: 40%;">Couriers</th> 117 </tr> 118 <tr data-order-id="${orderId}" 119 data-order-key="${order_key}" 120 data-address="${address}" 121 data-drop-area="${dropAreaName}" 122 data-total-price="${totalPrice}" 123 data-customer-name="${customerName}" 124 data-customer-phone="${customerShippingPhone}"> 125 126 <td>${orderId}</td> 127 <td>${customerName}</td> 128 <td> 129 <input type="text" class="phone_${orderId}" value="${customerShippingPhone}"> 130 </td> 131 <td> 132 <select class="form-control-lg paymentMethod_${orderId}" name="paymentMethod_${orderId}"> 133 <option selected>Select Payment Method</option> 134 <option value="4" selected>Cash On Delivery</option> 135 <option value="1">Credit Card (Visa or Mastercard)</option> 136 <option value="3">Zero Cash Collection</option> 137 </select> 138 </td> 139 <td class="total-price-context"> 140 <label class="d-flex align-items-center"> 141 <input type="text" class="price_${orderId} form-control w-50" value="${totalPrice}"> 142 <span class="ms-2">${currency}</span> 143 </label> 144 </td> 145 146 <td class="couriers-prices_${orderId}"> 147 148 </td> 149 </tr> 150 <tr> 151 <td colspan="6" class="text-end"> 152 <button type="button" class="btn btn-primary confirm_shipment">Ship</button> 153 </td> 154 </tr> 155 </table> 156 </div> 157 `; 109 <div style="max-height: 400px; overflow-y: auto;"> 110 <table class="table table-borderless table-striped table-hover" style="width: 100%; table-layout: fixed;"> 111 <tr> 112 <th style="width: 8%;">ID</th> 113 <th style="width: 18%;">Customer Name</th> 114 <th style="width: 12%;">Phone</th> 115 <th style="width: 12%;">Other Phone</th> 116 <th style="width: 15%;">Payment Method</th> 117 <th style="width: 10%;">Total Cost</th> 118 <th style="width: 25%;">Couriers</th> 119 </tr> 120 <tr data-order-id="${orderId}" 121 data-order-key="${order_key}" 122 data-address="${address}" 123 data-drop-area="${dropAreaName}" 124 data-total-price="${totalPrice}" 125 data-customer-name="${customerName}" 126 data-customer-phone="${customerShippingPhone}" 127 data-products="${products}"> 128 129 <td>${orderId}</td> 130 <td>${customerName}</td> 131 <td> 132 <input type="text" class="phone_${orderId} form-control" style="width: 100%;" value="${customerShippingPhone}" placeholder="01012345678, 01198765432, 01555555555"> 133 </td> 134 <td> 135 <input type="text" class="receiver_extra_phone${orderId} form-control" style="width: 100%;" value="" placeholder="01012345678, 01198765432, 01555555555"> 136 </td> 137 <td> 138 <select class="form-control paymentMethod_${orderId}" name="paymentMethod_${orderId}" style="width: 100%;"> 139 <option selected>Select Payment Method</option> 140 <option value="4" selected>Cash On Delivery</option> 141 <option value="1">Credit Card (Visa or Mastercard)</option> 142 <option value="3">Zero Cash Collection</option> 143 </select> 144 </td> 145 <td class="total-price-context"> 146 <label class="d-flex align-items-center"> 147 <input type="text" class="price_${orderId} form-control w-50" value="${totalPrice}"> 148 <span class="ms-2">${currency}</span> 149 </label> 150 </td> 151 <td class="couriers-prices_${orderId}"></td> 152 </tr> 153 <tr> 154 <td colspan="7" class="text-end"> 155 <button type="button" class="btn btn-primary confirm_shipment">Ship</button> 156 </td> 157 </tr> 158 </table> 159 </div> 160 `; 158 161 159 162 Swal.fire({ … … 235 238 currency: currency 236 239 }; 237 console.log("Updated Payment Method:", newPaymentMethod);240 console.log("Updated Payment Method:", newPaymentMethod); 238 241 fetchPricingSingleOrderOnClick(orderId, newPaymentMethod, orderData, dropAreaName); 239 242 … … 282 285 let totalPrice = $(`.price_${orderId}`).val() || "0.00"; // Fix: Retrieve total price correctly 283 286 let customerPhone = $(`.phone_${orderId}`).val() || "0000000000"; 287 let customerOtherPhone = $(`.receiver_extra_phone${orderId}`).val() || "0000000000"; 284 288 285 289 … … 287 291 let courier = orderRow.find(`input[name="carrier_${orderId}"]:checked`).val(); 288 292 if (!courier) { 289 console.warn(`No courier selected for Order ID ${orderId}`); 290 return; 291 } 293 alert(`Error: missing courier for Order ID ${orderId}.`); 294 } 295 if (!customerPhone || customerPhone.length < 11 && isValidEgyptianPhone(customerPhone)) { 296 alert(`Error: Invalid or missing phone number for Order ID ${orderId}.`); 297 } 298 299 292 300 293 301 let foundArea = cities_and_zones.find(area => area.value === dropArea || area.key === dropArea); … … 305 313 zero_cash_collection: paymentMethod == "3" ? true :false, 306 314 total_cash_collection: paymentMethod == "3" ? "0.00" : totalPrice.toString(), 307 backup_mobile: '',308 315 name: customerName, 309 316 phone: customerPhone, 317 backup_mobile: customerOtherPhone, 310 318 area_id: areaParsed[findDropAreaName] || null, 311 319 address: address, … … 313 321 }; 314 322 315 console.log(shipment); 316 317 if (!shipments.some(s => s.woocommerce_id === orderKey)) { 318 shipments.push(shipment); 319 } else { 320 console.warn(`Shipment for Order ID ${orderId} already exists.`); 321 } 322 submitOrder(shipment); 323 if ( 324 courier && 325 areaParsed[findDropAreaName] != null && 326 customerPhone && customerPhone.trim() !== "" && 327 customerPhone.length >= 11 && isValidEgyptianPhone(customerPhone) 328 ){ 329 submitOrder(shipment ); 330 331 Swal.fire({ 332 title: 'Processing Shipment...', 333 text: 'Please wait while we process your order.', 334 allowOutsideClick: false, 335 didOpen: () => { 336 Swal.showLoading(); // Show loading indicator 337 } 338 }); 339 } 323 340 324 341 }); 342 325 343 326 344 let requestData = { … … 331 349 332 350 333 function submitOrder(request) {351 function submitOrder(request) { 334 352 $.ajax({ 335 353 url: baseURL+'orders', … … 423 441 424 442 443 function isValidEgyptianPhone(phone) { 444 let egyptianRegex = /^(?:\+20|0020|0)?(10|11|12|15)[0-9]{8}$/; 445 return egyptianRegex.test(phone); 446 } 425 447 426 448 function overrideStates() { 427 $('#_shipping_state').empty();428 429 let options = '';430 431 for (let city = 0; city < sideupSettings.cities_and_zones.length; city++) {432 let selected = (sideupSettings.selected_shipping_state === sideupSettings.cities_and_zones[city].key ||433 sideupSettings.selected_shipping_state === sideupSettings.cities_and_zones[city].value)434 ? 'selected' : '';435 436 options += '<option value="' + sideupSettings.cities_and_zones[city].key + '" ' + selected + '>' + sideupSettings.cities_and_zones[city].key + '</option>';437 }438 $('#_shipping_state').append(options);439 $('#_billing_state').empty();440 441 let billing_options = '';442 for (let city = 0; city < sideupSettings.cities_and_zones.length; city++) {443 let selected = (sideupSettings.selected_billing_state === sideupSettings.cities_and_zones[city].key ||444 sideupSettings.selected_billing_state === sideupSettings.cities_and_zones[city].value)445 ? 'selected' : '';446 447 billing_options += '<option value="' + sideupSettings.cities_and_zones[city].key + '" ' + selected + '>' + sideupSettings.cities_and_zones[city].key + '</option>';448 }449 $('#_billing_state').append(billing_options);450 }449 $('#_shipping_state').empty(); 450 451 let options = ''; 452 453 for (let city = 0; city < sideupSettings.cities_and_zones.length; city++) { 454 let selected = (sideupSettings.selected_shipping_state === sideupSettings.cities_and_zones[city].key || 455 sideupSettings.selected_shipping_state === sideupSettings.cities_and_zones[city].value) 456 ? 'selected' : ''; 457 458 options += '<option value="' + sideupSettings.cities_and_zones[city].key + '" ' + selected + '>' + sideupSettings.cities_and_zones[city].key + '</option>'; 459 } 460 $('#_shipping_state').append(options); 461 $('#_billing_state').empty(); 462 463 let billing_options = ''; 464 for (let city = 0; city < sideupSettings.cities_and_zones.length; city++) { 465 let selected = (sideupSettings.selected_billing_state === sideupSettings.cities_and_zones[city].key || 466 sideupSettings.selected_billing_state === sideupSettings.cities_and_zones[city].value) 467 ? 'selected' : ''; 468 469 billing_options += '<option value="' + sideupSettings.cities_and_zones[city].key + '" ' + selected + '>' + sideupSettings.cities_and_zones[city].key + '</option>'; 470 } 471 $('#_billing_state').append(billing_options); 472 } 451 473 452 474 }); -
voo-shipping/trunk/views/ship_model.php
r3242613 r3243323 11 11 data-order-key="<?php echo $order_key?>" 12 12 data-address="<?php echo $shipping_address?>" 13 data-products="<?php echo $desc?>>" 13 14 > 14 15 Ship
Note: See TracChangeset
for help on using the changeset viewer.