Changeset 3412923
- Timestamp:
- 12/06/2025 11:19:08 AM (3 months ago)
- Location:
- sync-basalam
- Files:
-
- 276 added
- 11 edited
-
tags/1.6.1 (added)
-
tags/1.6.1/CHANGELOG.md (added)
-
tags/1.6.1/assets (added)
-
tags/1.6.1/assets/admin (added)
-
tags/1.6.1/assets/admin/css (added)
-
tags/1.6.1/assets/admin/js (added)
-
tags/1.6.1/assets/category (added)
-
tags/1.6.1/assets/category/css (added)
-
tags/1.6.1/assets/category/js (added)
-
tags/1.6.1/assets/css (added)
-
tags/1.6.1/assets/css/font.css (added)
-
tags/1.6.1/assets/css/logs.css (added)
-
tags/1.6.1/assets/css/onboarding.css (added)
-
tags/1.6.1/assets/css/social.css (added)
-
tags/1.6.1/assets/css/style.css (added)
-
tags/1.6.1/assets/css/sync-basalam-vendor-modal.css (added)
-
tags/1.6.1/assets/fonts (added)
-
tags/1.6.1/assets/fonts/moraba (added)
-
tags/1.6.1/assets/fonts/moraba/Morabba-Bold.woff2 (added)
-
tags/1.6.1/assets/fonts/moraba/Morabba-Regular.woff2 (added)
-
tags/1.6.1/assets/fonts/moraba/Morabba-SemiBold.woff2 (added)
-
tags/1.6.1/assets/fonts/pelak (added)
-
tags/1.6.1/assets/fonts/pelak/PelakFA-Bold.woff2 (added)
-
tags/1.6.1/assets/fonts/pelak/PelakFA-Regular.woff2 (added)
-
tags/1.6.1/assets/fonts/pelak/PelakFA-SemiBold.woff2 (added)
-
tags/1.6.1/assets/icons (added)
-
tags/1.6.1/assets/icons/arrow.svg (added)
-
tags/1.6.1/assets/icons/close.svg (added)
-
tags/1.6.1/assets/icons/create.svg (added)
-
tags/1.6.1/assets/icons/error.svg (added)
-
tags/1.6.1/assets/icons/info-black.svg (added)
-
tags/1.6.1/assets/icons/info.svg (added)
-
tags/1.6.1/assets/icons/new.svg (added)
-
tags/1.6.1/assets/icons/order.svg (added)
-
tags/1.6.1/assets/icons/product.svg (added)
-
tags/1.6.1/assets/icons/submit.svg (added)
-
tags/1.6.1/assets/icons/sync.svg (added)
-
tags/1.6.1/assets/icons/trash.svg (added)
-
tags/1.6.1/assets/icons/unsync.svg (added)
-
tags/1.6.1/assets/icons/update.svg (added)
-
tags/1.6.1/assets/images (added)
-
tags/1.6.1/assets/images/aparat.png (added)
-
tags/1.6.1/assets/images/bale.png (added)
-
tags/1.6.1/assets/images/basalam-logotype.svg (added)
-
tags/1.6.1/assets/images/gmail.png (added)
-
tags/1.6.1/assets/images/help.svg (added)
-
tags/1.6.1/assets/images/logo.svg (added)
-
tags/1.6.1/assets/images/logowoosalam.png (added)
-
tags/1.6.1/assets/images/telegram.png (added)
-
tags/1.6.1/assets/js (added)
-
tags/1.6.1/assets/js/admin.js (added)
-
tags/1.6.1/assets/js/check-sync.js (added)
-
tags/1.6.1/assets/js/connect-modal.js (added)
-
tags/1.6.1/assets/js/generate-product-variation.js (added)
-
tags/1.6.1/assets/js/get-category.js (added)
-
tags/1.6.1/assets/js/help.js (added)
-
tags/1.6.1/assets/js/logs.js (added)
-
tags/1.6.1/assets/js/manage-box.js (added)
-
tags/1.6.1/assets/js/map-category-option.js (added)
-
tags/1.6.1/assets/js/mobile-category.js (added)
-
tags/1.6.1/assets/js/order.js (added)
-
tags/1.6.1/assets/js/product-fields.js (added)
-
tags/1.6.1/assets/js/round.js (added)
-
tags/1.6.1/assets/logs (added)
-
tags/1.6.1/assets/logs/css (added)
-
tags/1.6.1/assets/logs/js (added)
-
tags/1.6.1/assets/onboarding (added)
-
tags/1.6.1/assets/onboarding/css (added)
-
tags/1.6.1/assets/onboarding/js (added)
-
tags/1.6.1/assets/order (added)
-
tags/1.6.1/assets/order/css (added)
-
tags/1.6.1/assets/order/js (added)
-
tags/1.6.1/assets/product (added)
-
tags/1.6.1/assets/product/css (added)
-
tags/1.6.1/assets/product/js (added)
-
tags/1.6.1/assets/utilities (added)
-
tags/1.6.1/assets/utilities/css (added)
-
tags/1.6.1/assets/utilities/js (added)
-
tags/1.6.1/class-sync-basalam-job-manager.php (added)
-
tags/1.6.1/includes (added)
-
tags/1.6.1/includes/admin (added)
-
tags/1.6.1/includes/admin/class-sync-basalam-admin-settings.php (added)
-
tags/1.6.1/includes/admin/class-sync-basalam-admin-ui.php (added)
-
tags/1.6.1/includes/admin/class-sync-basalam-category-mapping.php (added)
-
tags/1.6.1/includes/admin/class-sync-basalam-category-options.php (added)
-
tags/1.6.1/includes/admin/class-sync-basalam-faq.php (added)
-
tags/1.6.1/includes/admin/class-sync-basalam-menus.php (added)
-
tags/1.6.1/includes/admin/class-sync-basalam-onboarding-manager.php (added)
-
tags/1.6.1/includes/admin/class-sync-basalam-product-service.php (added)
-
tags/1.6.1/includes/admin/order (added)
-
tags/1.6.1/includes/admin/order/class-sync-basalam-check-orders-button.php (added)
-
tags/1.6.1/includes/admin/order/class-sync-basalam-order-column.php (added)
-
tags/1.6.1/includes/admin/order/class-sync-basalam-order-meta-box.php (added)
-
tags/1.6.1/includes/admin/order/class-sync-basalam-order-statuses.php (added)
-
tags/1.6.1/includes/admin/order/views (added)
-
tags/1.6.1/includes/admin/order/views/order-tracking-box.php (added)
-
tags/1.6.1/includes/admin/pages (added)
-
tags/1.6.1/includes/admin/pages/SyncBasalamAdminPageInterface.php (added)
-
tags/1.6.1/includes/admin/pages/SyncBasalamCategoryMappingPage.php (added)
-
tags/1.6.1/includes/admin/pages/SyncBasalamHelpPage.php (added)
-
tags/1.6.1/includes/admin/pages/SyncBasalamInfoPage.php (added)
-
tags/1.6.1/includes/admin/pages/SyncBasalamLogsPage.php (added)
-
tags/1.6.1/includes/admin/pages/SyncBasalamMainPage.php (added)
-
tags/1.6.1/includes/admin/pages/SyncBasalamOnboardingPage.php (added)
-
tags/1.6.1/includes/admin/pages/SyncBasalamUnsyncedProductsPage.php (added)
-
tags/1.6.1/includes/admin/product (added)
-
tags/1.6.1/includes/admin/product/class-sync-basalam-admin-product-operations.php (added)
-
tags/1.6.1/includes/admin/product/class-sync-basalam-bulk-product-actions.php (added)
-
tags/1.6.1/includes/admin/product/class-sync-basalam-create-product-data-v2.php (added)
-
tags/1.6.1/includes/admin/product/class-sync-basalam-get-product-data.php (added)
-
tags/1.6.1/includes/admin/product/class-sync-basalam-mobile-product-fields.php (added)
-
tags/1.6.1/includes/admin/product/class-sync-basalam-product-filter.php (added)
-
tags/1.6.1/includes/admin/product/class-sync-basalam-product-meta-box.php (added)
-
tags/1.6.1/includes/admin/product/class-sync-basalam-product-status-column.php (added)
-
tags/1.6.1/includes/admin/product/class-sync-basalam-product-type-fields.php (added)
-
tags/1.6.1/includes/admin/product/class-sync-basalam-product-wholesale-field.php (added)
-
tags/1.6.1/includes/class-sync-basalam-order-endpoint.php (added)
-
tags/1.6.1/includes/class-sync-basalam-plugin-activator.php (added)
-
tags/1.6.1/includes/class-sync-basalam-plugin.php (added)
-
tags/1.6.1/includes/class-sync-basalam-route-action.php (added)
-
tags/1.6.1/includes/controller (added)
-
tags/1.6.1/includes/controller/category-actions (added)
-
tags/1.6.1/includes/controller/category-actions/class-sync-basalam-create-category-map.php (added)
-
tags/1.6.1/includes/controller/category-actions/class-sync-basalam-fetch-basalam-categories.php (added)
-
tags/1.6.1/includes/controller/category-actions/class-sync-basalam-get-category-mappings.php (added)
-
tags/1.6.1/includes/controller/category-actions/class-sync-basalam-get-mapping-stats.php (added)
-
tags/1.6.1/includes/controller/category-actions/class-sync-basalam-get-woo-categories.php (added)
-
tags/1.6.1/includes/controller/category-actions/class-sync-basalam-remove-category-map.php (added)
-
tags/1.6.1/includes/controller/class-sync-basalam-action-controller.php (added)
-
tags/1.6.1/includes/controller/class-sync-basalam-update-settings.php (added)
-
tags/1.6.1/includes/controller/option-actions (added)
-
tags/1.6.1/includes/controller/option-actions/class-sync-basalam-create-map-option.php (added)
-
tags/1.6.1/includes/controller/option-actions/class-sync-basalam-remove-map-option.php (added)
-
tags/1.6.1/includes/controller/order-actions (added)
-
tags/1.6.1/includes/controller/order-actions/class-sync-basalam-auto-confirm-orders.php (added)
-
tags/1.6.1/includes/controller/order-actions/class-sync-basalam-cancel-order.php (added)
-
tags/1.6.1/includes/controller/order-actions/class-sync-basalam-confirm-order.php (added)
-
tags/1.6.1/includes/controller/order-actions/class-sync-basalam-delay-order.php (added)
-
tags/1.6.1/includes/controller/order-actions/class-sync-basalam-fetch-unsync-orders.php (added)
-
tags/1.6.1/includes/controller/order-actions/class-sync-basalam-request-cancel-order.php (added)
-
tags/1.6.1/includes/controller/order-actions/class-sync-basalam-tracking-code-order.php (added)
-
tags/1.6.1/includes/controller/product-actions (added)
-
tags/1.6.1/includes/controller/product-actions/class-sync-basalam-archive-product.php (added)
-
tags/1.6.1/includes/controller/product-actions/class-sync-basalam-cancel-connect-all-products.php (added)
-
tags/1.6.1/includes/controller/product-actions/class-sync-basalam-cancel-create-products.php (added)
-
tags/1.6.1/includes/controller/product-actions/class-sync-basalam-cancel-debug.php (added)
-
tags/1.6.1/includes/controller/product-actions/class-sync-basalam-cancel-update-products.php (added)
-
tags/1.6.1/includes/controller/product-actions/class-sync-basalam-clear-logs.php (added)
-
tags/1.6.1/includes/controller/product-actions/class-sync-basalam-connect-all-products.php (added)
-
tags/1.6.1/includes/controller/product-actions/class-sync-basalam-connect-single-product.php (added)
-
tags/1.6.1/includes/controller/product-actions/class-sync-basalam-create-all-products.php (added)
-
tags/1.6.1/includes/controller/product-actions/class-sync-basalam-create-single-product.php (added)
-
tags/1.6.1/includes/controller/product-actions/class-sync-basalam-detection-product-categories.php (added)
-
tags/1.6.1/includes/controller/product-actions/class-sync-basalam-disconnect-product.php (added)
-
tags/1.6.1/includes/controller/product-actions/class-sync-basalam-get-category-attributes.php (added)
-
tags/1.6.1/includes/controller/product-actions/class-sync-basalam-restore-product.php (added)
-
tags/1.6.1/includes/controller/product-actions/class-sync-basalam-update-all-products.php (added)
-
tags/1.6.1/includes/controller/product-actions/class-sync-basalam-update-single-product.php (added)
-
tags/1.6.1/includes/logger (added)
-
tags/1.6.1/includes/logger/class-sync-basalam-logger.php (added)
-
tags/1.6.1/includes/logger/class-sync-basalam-woo-logger.php (added)
-
tags/1.6.1/includes/logger/class-sync-basalam-wp-logger.php (added)
-
tags/1.6.1/includes/logger/interface-sync-basalam-logger-interface.php (added)
-
tags/1.6.1/includes/migration (added)
-
tags/1.6.1/includes/migration/class-sync-basalam-migration-V-1-3-0.php (added)
-
tags/1.6.1/includes/migration/class-sync-basalam-migration-V-1-3-2.php (added)
-
tags/1.6.1/includes/migration/class-sync-basalam-migration-V-1-3-8.php (added)
-
tags/1.6.1/includes/migration/class-sync-basalam-migration-V-1-3-9.php (added)
-
tags/1.6.1/includes/migration/class-sync-basalam-migration-V-1-4-0.php (added)
-
tags/1.6.1/includes/migration/class-sync-basalam-migration-V-1-4-1.php (added)
-
tags/1.6.1/includes/migration/class-sync-basalam-migration-V-1-5-4.php (added)
-
tags/1.6.1/includes/migration/class-sync-basalam-migration-interface.php (added)
-
tags/1.6.1/includes/migration/class-sync-basalam-migration-manager.php (added)
-
tags/1.6.1/includes/migration/class-sync-basalam-migrator-service.php (added)
-
tags/1.6.1/includes/productListeners (added)
-
tags/1.6.1/includes/productListeners/class-sync-basalam-archive-product-listener.php (added)
-
tags/1.6.1/includes/productListeners/class-sync-basalam-create-product-listener.php (added)
-
tags/1.6.1/includes/productListeners/class-sync-basalam-listener.php (added)
-
tags/1.6.1/includes/productListeners/class-sync-basalam-restore-product-listener.php (added)
-
tags/1.6.1/includes/productListeners/class-sync-basalam-update-product-listener.php (added)
-
tags/1.6.1/includes/productListeners/interface-sync-basalam-listener-interface.php (added)
-
tags/1.6.1/includes/productListeners/trait-sync-basalam-check-product-status.php (added)
-
tags/1.6.1/includes/queue (added)
-
tags/1.6.1/includes/queue/class-sync-basalam-queue-abstract.php (added)
-
tags/1.6.1/includes/queue/class-sync-basalam-queue-manager.php (added)
-
tags/1.6.1/includes/queue/tasks (added)
-
tags/1.6.1/includes/queue/tasks/class-sync-basalam-auto-connect-products.php (added)
-
tags/1.6.1/includes/queue/tasks/class-sync-basalam-bulk-update-products.php (added)
-
tags/1.6.1/includes/queue/tasks/class-sync-basalam-clear-log-files.php (added)
-
tags/1.6.1/includes/queue/tasks/class-sync-basalam-create-product-operation.php (added)
-
tags/1.6.1/includes/queue/tasks/class-sync-basalam-debug.php (added)
-
tags/1.6.1/includes/queue/tasks/class-sync-basalam-product-discount-dispatcher.php (added)
-
tags/1.6.1/includes/queue/tasks/class-sync-basalam-update-product.php (added)
-
tags/1.6.1/includes/services (added)
-
tags/1.6.1/includes/services/class-sync-basalam-api-service-manager.php (added)
-
tags/1.6.1/includes/services/class-sync-basalam-auto-connect-products.php (added)
-
tags/1.6.1/includes/services/class-sync-basalam-connect-product-service.php (added)
-
tags/1.6.1/includes/services/class-sync-basalam-create-product-service.php (added)
-
tags/1.6.1/includes/services/class-sync-basalam-date-converter.php (added)
-
tags/1.6.1/includes/services/class-sync-basalam-discount-manager.php (added)
-
tags/1.6.1/includes/services/class-sync-basalam-discount-task-model.php (added)
-
tags/1.6.1/includes/services/class-sync-basalam-discount-task-processor.php (added)
-
tags/1.6.1/includes/services/class-sync-basalam-discount-task-scheduler.php (added)
-
tags/1.6.1/includes/services/class-sync-basalam-fetch-commission.php (added)
-
tags/1.6.1/includes/services/class-sync-basalam-fetch-products-data.php (added)
-
tags/1.6.1/includes/services/class-sync-basalam-fetch-unsync-products.php (added)
-
tags/1.6.1/includes/services/class-sync-basalam-fetch-weekly-unsync-orders.php (added)
-
tags/1.6.1/includes/services/class-sync-basalam-file-uploader.php (added)
-
tags/1.6.1/includes/services/class-sync-basalam-get-basalam-orders.php (added)
-
tags/1.6.1/includes/services/class-sync-basalam-get-category-attr.php (added)
-
tags/1.6.1/includes/services/class-sync-basalam-get-category-id.php (added)
-
tags/1.6.1/includes/services/class-sync-basalam-like.php (added)
-
tags/1.6.1/includes/services/class-sync-basalam-order-manager.php (added)
-
tags/1.6.1/includes/services/class-sync-basalam-post-auto-confirm-order.php (added)
-
tags/1.6.1/includes/services/class-sync-basalam-system-resource-monitor.php (added)
-
tags/1.6.1/includes/services/class-sync-basalam-update-product-service.php (added)
-
tags/1.6.1/includes/services/class-sync-basalam-webhook-service.php (added)
-
tags/1.6.1/includes/services/discount (added)
-
tags/1.6.1/includes/services/discount/class-sync-basalam-discount-interface.php (added)
-
tags/1.6.1/includes/services/discount/class-sync-basalam-product-discount-handler.php (added)
-
tags/1.6.1/includes/services/discount/class-sync-basalam-simple-product-discount.php (added)
-
tags/1.6.1/includes/services/discount/class-sync-basalam-variable-product-discount.php (added)
-
tags/1.6.1/includes/services/orders (added)
-
tags/1.6.1/includes/services/orders/class-sync-basalam-cancel-order.php (added)
-
tags/1.6.1/includes/services/orders/class-sync-basalam-cancel-req-order.php (added)
-
tags/1.6.1/includes/services/orders/class-sync-basalam-confirm-order.php (added)
-
tags/1.6.1/includes/services/orders/class-sync-basalam-delay-req-order.php (added)
-
tags/1.6.1/includes/services/orders/class-sync-basalam-tracking-code-order.php (added)
-
tags/1.6.1/includes/services/routeHandler (added)
-
tags/1.6.1/includes/services/routeHandler/class-sync-basalam-route.php (added)
-
tags/1.6.1/includes/utilities (added)
-
tags/1.6.1/includes/utilities/class-sync-basalam-convert-fa-num.php (added)
-
tags/1.6.1/includes/utilities/class-sync-basalam-get-provinces-data.php (added)
-
tags/1.6.1/includes/utilities/class-sync-basalam-order-manager.php (added)
-
tags/1.6.1/includes/utilities/class-sync-basalam-text-converter.php (added)
-
tags/1.6.1/readme.txt (added)
-
tags/1.6.1/sync-basalam-jobs-runner.php (added)
-
tags/1.6.1/sync-basalam.php (added)
-
tags/1.6.1/templates (added)
-
tags/1.6.1/templates/admin (added)
-
tags/1.6.1/templates/admin/menu (added)
-
tags/1.6.1/templates/admin/menu/basalam-unsync-product-page.php (added)
-
tags/1.6.1/templates/admin/menu/category-mapping-page.php (added)
-
tags/1.6.1/templates/admin/menu/help-page.php (added)
-
tags/1.6.1/templates/admin/menu/info (added)
-
tags/1.6.1/templates/admin/menu/info-page.php (added)
-
tags/1.6.1/templates/admin/menu/info/info-connected.php (added)
-
tags/1.6.1/templates/admin/menu/info/info-not-auth.php (added)
-
tags/1.6.1/templates/admin/menu/info/info-not-vendor.php (added)
-
tags/1.6.1/templates/admin/menu/log-page.php (added)
-
tags/1.6.1/templates/admin/menu/main (added)
-
tags/1.6.1/templates/admin/menu/main-page.php (added)
-
tags/1.6.1/templates/admin/menu/main/main-connected.php (added)
-
tags/1.6.1/templates/admin/menu/main/main-get-token.php (added)
-
tags/1.6.1/templates/admin/menu/main/modal (added)
-
tags/1.6.1/templates/admin/menu/main/modal/add-product.php (added)
-
tags/1.6.1/templates/admin/menu/main/modal/auto-connect-product.php (added)
-
tags/1.6.1/templates/admin/menu/main/modal/update-product.php (added)
-
tags/1.6.1/templates/admin/menu/main/section (added)
-
tags/1.6.1/templates/admin/menu/main/section/order.php (added)
-
tags/1.6.1/templates/admin/menu/main/section/product.php (added)
-
tags/1.6.1/templates/admin/menu/main/section/setting.php (added)
-
tags/1.6.1/templates/admin/menu/main/section/status.php (added)
-
tags/1.6.1/templates/admin/onboarding (added)
-
tags/1.6.1/templates/admin/onboarding/step1.php (added)
-
tags/1.6.1/templates/admin/onboarding/step2.php (added)
-
tags/1.6.1/templates/admin/onboarding/step3.php (added)
-
tags/1.6.1/templates/admin/onboarding/template-onboarding-page.php (added)
-
tags/1.6.1/templates/admin/utilities (added)
-
tags/1.6.1/templates/admin/utilities/access-alert.php (added)
-
tags/1.6.1/templates/admin/utilities/connect-ajax-single-product-page.php (added)
-
tags/1.6.1/templates/admin/utilities/connect-button-single-product-page.php (added)
-
tags/1.6.1/templates/admin/utilities/connect-modal-single-product-page.php (added)
-
tags/1.6.1/templates/admin/utilities/like-alert.php (added)
-
tags/1.6.1/wp-bg-process.php (added)
-
trunk/includes/admin/class-sync-basalam-category-mapping.php (modified) (6 diffs)
-
trunk/includes/admin/product/class-sync-basalam-create-product-data-v2.php (modified) (2 diffs)
-
trunk/includes/admin/product/class-sync-basalam-get-product-data.php (modified) (3 diffs)
-
trunk/includes/class-sync-basalam-plugin-activator.php (modified) (2 diffs)
-
trunk/includes/class-sync-basalam-plugin.php (modified) (2 diffs)
-
trunk/includes/controller/category-actions/class-sync-basalam-create-category-map.php (modified) (2 diffs)
-
trunk/includes/migration/class-sync-basalam-migration-V-1-6-2.php (added)
-
trunk/includes/migration/class-sync-basalam-migration-manager.php (modified) (1 diff)
-
trunk/includes/services/class-sync-basalam-fetch-commission.php (modified) (2 diffs)
-
trunk/sync-basalam.php (modified) (1 diff)
-
trunk/templates/admin/menu/category-mapping-page.php (modified) (6 diffs)
-
trunk/templates/admin/menu/main/section/setting.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
sync-basalam/trunk/includes/admin/class-sync-basalam-category-mapping.php
r3397803 r3412923 139 139 } 140 140 141 public static function createCategoryMapping($wooCategoryId, $wooCategoryName, $basalamCategoryId , $basalamCategoryName)141 public static function createCategoryMapping($wooCategoryId, $wooCategoryName, $basalamCategoryIds, $basalamCategoryName) 142 142 { 143 143 global $wpdb; … … 152 152 throw new Exception('این دستهبندی ووکامرس قبلاً به یک دستهبندی باسلام متصل شده است'); 153 153 } 154 155 $level1 = isset($basalamCategoryIds[0]) && is_numeric($basalamCategoryIds[0]) ? intval($basalamCategoryIds[0]) : null; 156 $level2 = isset($basalamCategoryIds[1]) && is_numeric($basalamCategoryIds[1]) ? intval($basalamCategoryIds[1]) : null; 157 $level3 = isset($basalamCategoryIds[2]) && is_numeric($basalamCategoryIds[2]) ? intval($basalamCategoryIds[2]) : null; 154 158 155 159 $result = $wpdb->insert( … … 158 162 'woo_category_id' => $wooCategoryId, 159 163 'woo_category_name' => $wooCategoryName, 160 'basalam_category_id' => $basalamCategoryId, 164 'basalam_category_level1' => $level1, 165 'basalam_category_level2' => $level2, 166 'basalam_category_level3' => $level3, 161 167 'basalam_category_name' => $basalamCategoryName 162 168 ], 163 ['%d', '%s', '%d', '% s']169 ['%d', '%s', '%d', '%d', '%d', '%s'] 164 170 ); 165 171 … … 187 193 188 194 $result = $wpdb->get_row($wpdb->prepare( 189 "SELECT basalam_category_ id, basalam_category_name FROM $tableName WHERE woo_category_id = %d",195 "SELECT basalam_category_level1, basalam_category_level2, basalam_category_level3, basalam_category_name FROM $tableName WHERE woo_category_id = %d", 190 196 $wooCategoryId 191 197 )); 192 198 193 return $result; 199 if (!$result) { 200 return null; 201 } 202 203 $categoryIds = []; 204 if (!is_null($result->basalam_category_level1)) { 205 $categoryIds[] = intval($result->basalam_category_level1); 206 } 207 if (!is_null($result->basalam_category_level2)) { 208 $categoryIds[] = intval($result->basalam_category_level2); 209 } 210 if (!is_null($result->basalam_category_level3)) { 211 $categoryIds[] = intval($result->basalam_category_level3); 212 } 213 214 return (object) [ 215 'basalam_category_ids' => $categoryIds, 216 'basalam_category_name' => $result->basalam_category_name 217 ]; 194 218 } 195 219 … … 200 224 201 225 $results = $wpdb->get_results( 202 "SELECT woo_category_id, basalam_category_ idFROM $tableName",226 "SELECT woo_category_id, basalam_category_level1, basalam_category_level2, basalam_category_level3 FROM $tableName", 203 227 ARRAY_A 204 228 ); … … 206 230 $mappings = []; 207 231 foreach ($results as $result) { 208 $mappings[$result['woo_category_id']] = $result['basalam_category_id']; 232 $categoryIds = []; 233 if (!is_null($result['basalam_category_level1'])) { 234 $categoryIds[] = intval($result['basalam_category_level1']); 235 } 236 if (!is_null($result['basalam_category_level2'])) { 237 $categoryIds[] = intval($result['basalam_category_level2']); 238 } 239 if (!is_null($result['basalam_category_level3'])) { 240 $categoryIds[] = intval($result['basalam_category_level3']); 241 } 242 $mappings[$result['woo_category_id']] = $categoryIds; 209 243 } 210 244 -
sync-basalam/trunk/includes/admin/product/class-sync-basalam-create-product-data-v2.php
r3397803 r3412923 22 22 $stock_quantity = $this->getStockQuantity($product); 23 23 24 $mapped_category_id = $this->getMappedCategory($product);25 26 if ($mapped_category_id ) {27 $category_ids = [$mapped_category_id];24 $mapped_category_ids = $this->getMappedCategory($product); 25 26 if ($mapped_category_ids) { 27 $category_ids = $mapped_category_ids; 28 28 } else { 29 29 $product_title = mb_substr($product->get_name(), 0, 120); … … 278 278 $mapped_category = SyncBasalamCategoryMapping::getBasalamCategoryForWooCategory($woo_category_id); 279 279 280 if ($mapped_category && isset($mapped_category->basalam_category_id )) {281 return $mapped_category->basalam_category_id ;280 if ($mapped_category && isset($mapped_category->basalam_category_ids) && !empty($mapped_category->basalam_category_ids)) { 281 return $mapped_category->basalam_category_ids; 282 282 } 283 283 } -
sync-basalam/trunk/includes/admin/product/class-sync-basalam-get-product-data.php
r3397803 r3412923 18 18 19 19 if (!$category_ids) { 20 $mapped_category_id = $this->getMappedCategory($product_id);21 22 if ($mapped_category_id ) {23 $category_ids = [$mapped_category_id];20 $mapped_category_ids = $this->getMappedCategory($product_id); 21 22 if ($mapped_category_ids) { 23 $category_ids = $mapped_category_ids; 24 24 } else { 25 25 $product_title = mb_substr($product->get_name(), 0, 120); … … 416 416 417 417 if ($increase_value == -1) { 418 SyncBasalamLogger::debug('Fetching category commission for categories: ' . json_encode($category_ids, JSON_UNESCAPED_UNICODE)); 418 419 $category_data = SyncBasalamFetchCommission::fetchCategoryCommission($category_ids); 419 420 … … 758 759 $mapped_category = SyncBasalamCategoryMapping::getBasalamCategoryForWooCategory($woo_category_id); 759 760 760 if ($mapped_category && isset($mapped_category->basalam_category_id )) {761 return $mapped_category->basalam_category_id ;761 if ($mapped_category && isset($mapped_category->basalam_category_ids) && !empty($mapped_category->basalam_category_ids)) { 762 return $mapped_category->basalam_category_ids; 762 763 } 763 764 } -
sync-basalam/trunk/includes/class-sync-basalam-plugin-activator.php
r3397803 r3412923 87 87 woo_category_id int(11) NOT NULL, 88 88 woo_category_name varchar(255) NOT NULL, 89 basalam_category_id int(11) NOT NULL, 89 basalam_category_level1 int(11) DEFAULT NULL, 90 basalam_category_level2 int(11) DEFAULT NULL, 91 basalam_category_level3 int(11) DEFAULT NULL, 90 92 basalam_category_name varchar(255) NOT NULL, 91 93 created_at datetime DEFAULT CURRENT_TIMESTAMP, … … 93 95 PRIMARY KEY (id), 94 96 UNIQUE KEY woo_category_unique (woo_category_id), 95 KEY basalam_category_ idx (basalam_category_id)97 KEY basalam_category_level1_idx (basalam_category_level1) 96 98 ) $charset_collate;"; 97 99 -
sync-basalam/trunk/includes/class-sync-basalam-plugin.php
r3412783 r3412923 4 4 class SyncBasalamPlugin 5 5 { 6 const VERSION = '1.6. 1';6 const VERSION = '1.6.2'; 7 7 8 8 public function __construct() … … 43 43 require_once SYNC_BASALAM_PLUGIN_INCLUDES_DIR . 'migration/class-sync-basalam-migration-V-1-4-1.php'; 44 44 require_once SYNC_BASALAM_PLUGIN_INCLUDES_DIR . 'migration/class-sync-basalam-migration-V-1-5-4.php'; 45 require_once SYNC_BASALAM_PLUGIN_INCLUDES_DIR . 'migration/class-sync-basalam-migration-V-1-6-2.php'; 45 46 require_once SYNC_BASALAM_PLUGIN_INCLUDES_DIR . 'migration/class-sync-basalam-migration-manager.php'; 46 47 require_once SYNC_BASALAM_PLUGIN_INCLUDES_DIR . 'migration/class-sync-basalam-migrator-service.php'; -
sync-basalam/trunk/includes/controller/category-actions/class-sync-basalam-create-category-map.php
r3397803 r3412923 11 11 $wooCategoryId = intval($_POST['woo_category_id']); 12 12 $wooCategoryName = sanitize_text_field($_POST['woo_category_name']); 13 $basalamCategoryId = intval($_POST['basalam_category_id']);13 $basalamCategoryIds = isset($_POST['basalam_category_ids']) ? $_POST['basalam_category_ids'] : null; 14 14 $basalamCategoryName = sanitize_text_field($_POST['basalam_category_name']); 15 15 16 if (!$wooCategoryId || !$basalamCategoryId ) {16 if (!$wooCategoryId || !$basalamCategoryIds || !is_array($basalamCategoryIds)) { 17 17 wp_send_json_error('Invalid category data'); 18 18 return; 19 19 } 20 21 $basalamCategoryIds = array_map('intval', $basalamCategoryIds); 20 22 21 23 try { … … 23 25 $wooCategoryId, 24 26 $wooCategoryName, 25 $basalamCategoryId ,27 $basalamCategoryIds, 26 28 $basalamCategoryName 27 29 ); -
sync-basalam/trunk/includes/migration/class-sync-basalam-migration-manager.php
r3397803 r3412923 15 15 '1.4.1' => new SyncBasalamMigration_1_4_1(), 16 16 '1.5.4' => new SyncBasalamMigration_1_5_4(), 17 '1.6.2' => new SyncBasalamMigration_1_6_2(), 17 18 ]; 18 19 } -
sync-basalam/trunk/includes/services/class-sync-basalam-fetch-commission.php
r3397803 r3412923 9 9 10 10 if (isset($categoryIds[0]) && is_numeric($categoryIds[0])) { 11 $queryParams[] = "product.category.level1=" . intval($categoryIds[ 2]);11 $queryParams[] = "product.category.level1=" . intval($categoryIds[0]); 12 12 } 13 13 if (isset($categoryIds[1]) && is_numeric($categoryIds[1])) { … … 15 15 } 16 16 if (isset($categoryIds[2]) && is_numeric($categoryIds[2])) { 17 $queryParams[] = "product.category.level3=" . intval($categoryIds[ 0]);17 $queryParams[] = "product.category.level3=" . intval($categoryIds[2]); 18 18 } 19 19 -
sync-basalam/trunk/sync-basalam.php
r3412783 r3412923 5 5 * Plugin Name: sync basalam | ووسلام 6 6 * Description: با استفاده از پلاگین ووسلام میتوایند تمامی محصولات ووکامرس را با یک کلیک به غرفه باسلامی خود اضافه کنید، همچنین تمامی سفارش باسلامی شما به سایت شما اضافه میگردد. 7 * Version: 1.6. 17 * Version: 1.6.2 8 8 * Author: Woosalam Dev 9 9 * Author URI: https://wp.hamsalam.ir/ -
sync-basalam/trunk/templates/admin/menu/category-mapping-page.php
r3397803 r3412923 407 407 } 408 408 409 function renderBasalamCategories(categories, parentElement = null, level = 0 ) {409 function renderBasalamCategories(categories, parentElement = null, level = 0, parentIds = []) { 410 410 if (!parentElement) { 411 411 $('#basalam-categories-list').empty(); … … 422 422 const paddingRight = level; 423 423 const isSelectable = level === 2; 424 const currentPath = [...parentIds, category.id]; 424 425 425 426 const categoryHtml = ` … … 428 429 data-id="${category.id}" 429 430 data-name="${category.name}" 430 data-level="${level}"> 431 data-level="${level}" 432 data-path='${JSON.stringify(currentPath)}'> 431 433 <div style="display: flex; align-items: center; width: 100%;"> 432 434 ${hasChildren ? `<span class="expand-icon dashicons dashicons-arrow-left-alt2" data-category-id="${category.id}" style="cursor: pointer; margin-left: 5px;"></span>` : '<span style="width: 20px; display: inline-block;"></span>'} … … 442 444 443 445 if (hasChildren) { 444 renderBasalamCategories(category.children, categoryElement.find(`#children-${category.id}`), level + 1 );446 renderBasalamCategories(category.children, categoryElement.find(`#children-${category.id}`), level + 1, currentPath); 445 447 } 446 448 }); … … 465 467 $(this).addClass('selected'); 466 468 469 const categoryPath = JSON.parse($(this).attr('data-path')); 467 470 selectedBasalamCategory = { 468 471 id: $(this).data('id'), 469 name: $(this).data('name') 472 name: $(this).data('name'), 473 path: categoryPath 470 474 }; 471 475 … … 599 603 woo_category_id: selectedWooCategory.id, 600 604 woo_category_name: selectedWooCategory.name, 601 basalam_category_id : selectedBasalamCategory.id,605 basalam_category_ids: selectedBasalamCategory.path, 602 606 basalam_category_name: selectedBasalamCategory.name, 603 607 _wpnonce: '<?php echo wp_create_nonce('create_category_mapping_nonce'); ?>' -
sync-basalam/trunk/templates/admin/menu/main/section/setting.php
r3412783 r3412923 216 216 const form = event.target; 217 217 const elements = form.querySelectorAll('input, select, textarea'); 218 const customFieldsContainer = document.getElementById('Basalam-custom-fields'); 218 219 219 220 elements.forEach(function(element) { … … 221 222 if (!name || name === 'action' || name === '_wpnonce' || name === '_wp_http_referer') { 222 223 return; 224 } 225 226 // Don't disable elements inside #Basalam-custom-fields 227 if (customFieldsContainer && customFieldsContainer.contains(element)) { 228 return; 229 } 230 231 // Don't disable hidden inputs that are paired with checkboxes 232 if (element.type === 'hidden') { 233 const checkboxWithSameName = form.querySelector('input[type="checkbox"][name="' + name + '"]'); 234 if (checkboxWithSameName) { 235 return; 236 } 223 237 } 224 238
Note: See TracChangeset
for help on using the changeset viewer.