Changeset 2579569
- Timestamp:
- 08/06/2021 10:42:15 PM (5 years ago)
- Location:
- bonus-plus-wp/trunk
- Files:
-
- 3 edited
-
bonus-plus-wp.php (modified) (1 diff)
-
inc/WooProductCatExport.php (modified) (11 diffs)
-
readme.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
bonus-plus-wp/trunk/bonus-plus-wp.php
r2578509 r2579569 15 15 * WP requires at least: 5.0 16 16 * Tested up to: 5.8 17 * Version: 1. 717 * Version: 1.8 18 18 */ 19 19 namespace BPWP; -
bonus-plus-wp/trunk/inc/WooProductCatExport.php
r2578509 r2579569 21 21 */ 22 22 public static $productCatNoChild = []; 23 24 /**25 * Категории верхнего уровня, не имеющие родителей26 */27 public static $productTopCat = [];28 23 29 24 //public static $error = 0; … … 71 66 { 72 67 73 $wrong _products_action = get_option('bpwp_wrong_products_action');68 $wrongProductsAction = get_option('bpwp_wrong_products_action'); 74 69 ?> 75 70 <select class="check_prefix_postfix" name="bpwp_wrong_products_action"> … … 78 73 '<option value="%s" %s>%s</option>', 79 74 'hide', 80 selected('hide', $wrong _products_action, false),75 selected('hide', $wrongProductsAction, false), 81 76 __('Импортировать, не включая товар в файл импорта', 'bonus-plus-wp') 82 77 ); … … 84 79 '<option value="%s" %s>%s</option>', 85 80 'empty', 86 selected('empty', $wrong _products_action, false),81 selected('empty', $wrongProductsAction, false), 87 82 __( 'Импортировать товар, без категории', 'bonus-plus-wp') 88 83 ); … … 172 167 $productList = []; 173 168 $wrongProducts = []; 174 // Получим категории верхнего уровня 175 self::$productTopCat = get_terms( 176 [ 177 'taxonomy' => 'product_cat', 178 'hide_empty' => false, 179 'parent' => 0, 180 'fields' => 'ids', 181 ] 182 ); 169 $simpleProducts = []; 170 $variableProducts = []; 171 $wrongProductsAction = get_option('bpwp_wrong_products_action'); 183 172 184 173 $args = array( … … 187 176 'type' => ['simple', 'variable'], 188 177 ); 189 $products = wc_get_products($args); 190 if ($products) { 178 179 if ($products = wc_get_products($args)) { 180 191 181 foreach ($products as $product) { 192 182 $productId = $product->get_id(); 183 193 184 $productName = $product->get_name(); 194 185 $productCategory = self::bpwp_get_product_child_category($productId); 195 186 196 187 if (count($productCategory) !== 1) { 197 // У товара больше 1 дочерней категории или нет, действуем по опции 198 $wrong_products_action = get_option('bpwp_wrong_products_action'); 199 switch ($wrong_products_action) { 188 switch ($wrongProductsAction) { 200 189 case 'hide': 201 190 do_action( … … 205 194 $desc = sprintf(__('У товара [%s] %s более 1 дочерней категории', 'bonus-plus-wp'), $productId, $productName), 206 195 ); 196 $productCat = -1; 207 197 break; 208 198 case 'empty': 209 $exportProduct = [ 210 'id' => $productId, 211 'pid' => 0, 212 'n' => $productName, 213 'g' => false, 214 ]; 215 $productList[] = $exportProduct; 199 $productCat = 0; 216 200 break; 217 201 } 218 202 $wrongProducts[$productId] = $productName; 219 203 } else { 220 foreach ($productCategory as $productCat) {221 $ CatId= $productCat->term_id;204 foreach ($productCategory as $productCat) { 205 $productCat = $productCat->term_id; 222 206 } 223 $productExport = [ 207 } 208 209 // простые товары 210 if ($product->is_type('simple') && $productCat >= 0){ 211 $productList[] = [ 224 212 'id' => $productId, 225 'pid' => $ CatId,213 'pid' => $productCat, 226 214 'n' => $productName, 227 215 'g' => false, 228 216 ]; 229 $productList[] = $productExport; 217 $simpleProducts[$productId] = $productName; 218 } 219 220 // вариативные товары 221 if ($product->is_type('variable') && $productCat >= 0){ 222 foreach ($product->get_available_variations() as $variation) { 223 $variationId = $variation['variation_id']; 224 225 $var = wc_get_product($variationId); 226 $variationName = $var->get_formatted_name(); 227 228 $productList[] = [ 229 'id' => $variationId, 230 'pid' => $productCat, 231 'n' => $variationName, 232 'g' => false, 233 ]; 234 $variableProducts[$variationId] = $variationName; 235 } 230 236 } 237 231 238 } 232 239 } … … 238 245 self::$lastExport['pexport'] = count($productList) > 0 ? count($productList) : 0; 239 246 self::$lastExport['phide'] = count($wrongProducts) > 0 ? count($wrongProducts) : 0; 247 self::$lastExport['vcount'] = count($variableProducts) > 0 ? count($variableProducts) : 0; 240 248 241 249 return $productList; … … 253 261 254 262 if (empty($product)) { 255 $product_cat = self::bpwp_api_product_cat_data_prepare();256 $products = self::bpwp_api_products_data_prepare();263 $product_cat = apply_filters('bpwp_filter_export_product_cat', self::bpwp_api_product_cat_data_prepare()); 264 $products = apply_filters('bpwp_filter_export_products', self::bpwp_api_products_data_prepare()); 257 265 $product = array_merge($product_cat, $products); 266 /* 267 usort($product, function ($a, $b) { 268 return $a['id'] - $b['id']; 269 }); 270 */ 258 271 } 259 272 … … 309 322 { 310 323 $strings = []; 311 $class = self::$lastExport['class'];324 $class = isset(self::$lastExport['class']) ? self::$lastExport['class'] : 'notice notice-warning'; 312 325 $lastExportDate = !empty(get_option(self::$lastExportOption)) ? get_option(self::$lastExportOption) : ''; 313 $wrong _products_action = get_option('bpwp_wrong_products_action');314 switch ($wrong _products_action) {326 $wrongProductsAction = get_option('bpwp_wrong_products_action'); 327 switch ($wrongProductsAction) { 315 328 case 'hide': 316 329 $action = __('Пропущено товаров', 'bonus-plus-wp'); 317 330 break; 318 331 case 'empty': 319 $action = __(' Импортировано товаров, без категории', 'bonus-plus-wp');332 $action = __('Экспортировано товаров, без категории', 'bonus-plus-wp'); 320 333 break; 321 334 } … … 328 341 $strings[] = sprintf('<strong>%s: %d</strong>', esc_html(__('Экспортировано товаров', 'bonus-plus-wp')), self::$lastExport['pexport']); 329 342 $strings[] = sprintf('<strong>%s: %d</strong>', esc_html($action), self::$lastExport['phide']); 343 $strings[] = sprintf('<strong>%s: %d</strong>', esc_html(__('Экспортировано вариаций', 'bonus-plus-wp')), self::$lastExport['vcount']); 330 344 331 345 -
bonus-plus-wp/trunk/readme.txt
r2578509 r2579569 5 5 Requires at least: 4.0 6 6 Tested up to: 5.8 7 Stable tag: 1. 77 Stable tag: 1.8 8 8 Requires PHP: 7.1 9 9 License: GPLv2 or later … … 93 93 == Changelog == 94 94 95 = 1.8 = 96 - Добавлен экспорт вариаций как продуктов 97 - Добавлены хуки bpwp_filter_export_product_cat и bpwp_filter_export_products для фильтрации категорий и товаров перед экспортом 98 95 99 = 1.7 = 96 100 - Исправлены функция определения родительской категории у товара, добавлена документация https://github.com/evgrezanov/bonus-plus-wp/wiki/Export-products-and-product-cat/
Note: See TracChangeset
for help on using the changeset viewer.