Changeset 3152168
- Timestamp:
- 09/15/2024 12:13:02 PM (17 months ago)
- Location:
- wc-trendyol
- Files:
-
- 180 added
- 1 deleted
- 30 edited
-
assets/screenshot-4.png (modified) (previous)
-
tags/3.1.3 (added)
-
tags/3.1.3/LICENSE.txt (added)
-
tags/3.1.3/README.txt (added)
-
tags/3.1.3/admin (added)
-
tags/3.1.3/admin/assets (added)
-
tags/3.1.3/admin/assets/css (added)
-
tags/3.1.3/admin/assets/css/root.css (added)
-
tags/3.1.3/admin/assets/css/settings.css (added)
-
tags/3.1.3/admin/assets/css/wizard.css (added)
-
tags/3.1.3/admin/assets/img (added)
-
tags/3.1.3/admin/assets/img/check.png (added)
-
tags/3.1.3/admin/assets/img/close.png (added)
-
tags/3.1.3/admin/assets/img/emoji-no.gif (added)
-
tags/3.1.3/admin/assets/img/no.png (added)
-
tags/3.1.3/admin/assets/img/rating-and-review-small-star-orange.svg (added)
-
tags/3.1.3/admin/assets/img/trendyol-logo.jpg (added)
-
tags/3.1.3/admin/assets/img/trendyol-order-logo.png (added)
-
tags/3.1.3/admin/assets/img/trendyol-to-woocommerce.jpg (added)
-
tags/3.1.3/admin/assets/img/trendyol-to-woocommerce.png (added)
-
tags/3.1.3/admin/assets/img/woocommerce-order-logo.png (added)
-
tags/3.1.3/admin/assets/img/woocommerce-to-trendyol.jpg (added)
-
tags/3.1.3/admin/assets/img/woocommerce-to-trendyol.png (added)
-
tags/3.1.3/admin/assets/img/yes.png (added)
-
tags/3.1.3/admin/assets/js (added)
-
tags/3.1.3/admin/assets/js/bulk_images_processes.js (added)
-
tags/3.1.3/admin/assets/js/bulk_product_processes.js (added)
-
tags/3.1.3/admin/assets/js/categories_matching.js (added)
-
tags/3.1.3/admin/assets/js/product_matching.js (added)
-
tags/3.1.3/admin/assets/js/settings.js (added)
-
tags/3.1.3/admin/assets/js/tools.js (added)
-
tags/3.1.3/admin/assets/js/wc_trendyol_general.js (added)
-
tags/3.1.3/admin/assets/vendor (added)
-
tags/3.1.3/admin/assets/vendor/fontawesome (added)
-
tags/3.1.3/admin/assets/vendor/fontawesome/css (added)
-
tags/3.1.3/admin/assets/vendor/fontawesome/css/all.css (added)
-
tags/3.1.3/admin/assets/vendor/fontawesome/css/all.min.css (added)
-
tags/3.1.3/admin/assets/vendor/fontawesome/webfonts (added)
-
tags/3.1.3/admin/assets/vendor/fontawesome/webfonts/fa-brands-400.ttf (added)
-
tags/3.1.3/admin/assets/vendor/fontawesome/webfonts/fa-brands-400.woff2 (added)
-
tags/3.1.3/admin/assets/vendor/fontawesome/webfonts/fa-regular-400.ttf (added)
-
tags/3.1.3/admin/assets/vendor/fontawesome/webfonts/fa-regular-400.woff2 (added)
-
tags/3.1.3/admin/assets/vendor/fontawesome/webfonts/fa-solid-900.ttf (added)
-
tags/3.1.3/admin/assets/vendor/fontawesome/webfonts/fa-solid-900.woff2 (added)
-
tags/3.1.3/admin/assets/vendor/fontawesome/webfonts/fa-v4compatibility.ttf (added)
-
tags/3.1.3/admin/assets/vendor/fontawesome/webfonts/fa-v4compatibility.woff2 (added)
-
tags/3.1.3/admin/assets/vendor/select2 (added)
-
tags/3.1.3/admin/assets/vendor/select2/css (added)
-
tags/3.1.3/admin/assets/vendor/select2/css/select2.min.css (added)
-
tags/3.1.3/admin/assets/vendor/select2/js (added)
-
tags/3.1.3/admin/assets/vendor/select2/js/select2.min.js (added)
-
tags/3.1.3/admin/assets/vendor/sweetalert2 (added)
-
tags/3.1.3/admin/assets/vendor/sweetalert2/js (added)
-
tags/3.1.3/admin/assets/vendor/sweetalert2/js/sweetalert2.js (added)
-
tags/3.1.3/admin/class-wc-trendyol-admin.php (added)
-
tags/3.1.3/admin/inc (added)
-
tags/3.1.3/admin/inc/wc_trendyol_ajax_processes.php (added)
-
tags/3.1.3/admin/inc/wc_trendyol_background_processes.php (added)
-
tags/3.1.3/admin/index.php (added)
-
tags/3.1.3/admin/partials (added)
-
tags/3.1.3/admin/partials/settings_tabs (added)
-
tags/3.1.3/admin/partials/settings_tabs/cronjobs_settings.php (added)
-
tags/3.1.3/admin/partials/settings_tabs/general_settings.php (added)
-
tags/3.1.3/admin/partials/settings_tabs/other_plugins.php (added)
-
tags/3.1.3/admin/partials/settings_tabs/tools.php (added)
-
tags/3.1.3/admin/partials/wc_trendyol_bulk_images_processing.php (added)
-
tags/3.1.3/admin/partials/wc_trendyol_bulk_product_processes.php (added)
-
tags/3.1.3/admin/partials/wc_trendyol_categories_matching.php (added)
-
tags/3.1.3/admin/partials/wc_trendyol_product_matching.php (added)
-
tags/3.1.3/admin/partials/wc_trendyol_settings_page.php (added)
-
tags/3.1.3/composer.json (added)
-
tags/3.1.3/composer.lock (added)
-
tags/3.1.3/includes (added)
-
tags/3.1.3/includes/class-wc-trendyol-activator.php (added)
-
tags/3.1.3/includes/class-wc-trendyol-deactivator.php (added)
-
tags/3.1.3/includes/class-wc-trendyol-i18n.php (added)
-
tags/3.1.3/includes/class-wc-trendyol-loader.php (added)
-
tags/3.1.3/includes/class-wc-trendyol.php (added)
-
tags/3.1.3/includes/index.php (added)
-
tags/3.1.3/index.php (added)
-
tags/3.1.3/languages (added)
-
tags/3.1.3/languages/wc-trendyol-tr_TR.l10n.php (added)
-
tags/3.1.3/languages/wc-trendyol-tr_TR.mo (added)
-
tags/3.1.3/languages/wc-trendyol-tr_TR.po (added)
-
tags/3.1.3/languages/wc-trendyol.pot (added)
-
tags/3.1.3/public (added)
-
tags/3.1.3/public/class-wc-trendyol-public.php (added)
-
tags/3.1.3/public/css (added)
-
tags/3.1.3/public/css/wc-trendyol-public.css (added)
-
tags/3.1.3/public/index.php (added)
-
tags/3.1.3/public/js (added)
-
tags/3.1.3/public/js/wc-trendyol-public.js (added)
-
tags/3.1.3/public/partials (added)
-
tags/3.1.3/public/partials/wc-trendyol-public-display.php (added)
-
tags/3.1.3/trendyol_inc (added)
-
tags/3.1.3/trendyol_inc/trendyol_adapter.php (added)
-
tags/3.1.3/trendyol_inc/trendyol_metas.php (added)
-
tags/3.1.3/uninstall.php (added)
-
tags/3.1.3/vendor (added)
-
tags/3.1.3/vendor/autoload.php (added)
-
tags/3.1.3/vendor/bin (added)
-
tags/3.1.3/vendor/composer (added)
-
tags/3.1.3/vendor/composer/ClassLoader.php (added)
-
tags/3.1.3/vendor/composer/InstalledVersions.php (added)
-
tags/3.1.3/vendor/composer/LICENSE (added)
-
tags/3.1.3/vendor/composer/autoload_classmap.php (added)
-
tags/3.1.3/vendor/composer/autoload_namespaces.php (added)
-
tags/3.1.3/vendor/composer/autoload_psr4.php (added)
-
tags/3.1.3/vendor/composer/autoload_real.php (added)
-
tags/3.1.3/vendor/composer/autoload_static.php (added)
-
tags/3.1.3/vendor/composer/installed.json (added)
-
tags/3.1.3/vendor/composer/installed.php (added)
-
tags/3.1.3/vendor/hasokeyk (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/.gitattributes (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/.gitignore (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/README.md (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/composer.json (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/composer.lock (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/examples (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/examples/Marketplace (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/examples/Marketplace/Addresses (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/examples/Marketplace/Addresses/get_my_addresses.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/examples/Marketplace/Brands (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/examples/Marketplace/Brands/get_brands.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/examples/Marketplace/Brands/search_brand.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/examples/Marketplace/Categories (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/examples/Marketplace/Categories/get_categories.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/examples/Marketplace/Categories/get_category_info.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/examples/Marketplace/Categories/get_my_categories.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/examples/Marketplace/Categories/get_product_parent_cat_list.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/examples/Marketplace/Categories/search_category_attr_values.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/examples/Marketplace/CustomerQuestions (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/examples/Marketplace/CustomerQuestions/answer_customer_question.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/examples/Marketplace/CustomerQuestions/get_my_customer_questions.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/examples/Marketplace/CustomerQuestions/get_product_customer_question_web.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/examples/Marketplace/Orders (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/examples/Marketplace/Orders/get_my_orders.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/examples/Marketplace/Products (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/examples/Marketplace/Products/create_product.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/examples/Marketplace/Products/get_my_produtcs.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/examples/Marketplace/Products/get_product_comments.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/examples/Marketplace/Products/update_product_brand.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/examples/Marketplace/Products/update_product_description.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/examples/Marketplace/Products/update_product_info.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/examples/Marketplace/Products/update_product_price.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/examples/Marketplace/Products/update_product_title.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/examples/Marketplace/Shipments (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/examples/Marketplace/Shipments/get_shipments.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/src (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/src/Trendyol (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/src/Trendyol/Marketplace (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/src/Trendyol/Marketplace/TrendyolMarketplace.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/src/Trendyol/Marketplace/TrendyolMarketplaceAddresses.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/src/Trendyol/Marketplace/TrendyolMarketplaceBrands.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/src/Trendyol/Marketplace/TrendyolMarketplaceCategories.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/src/Trendyol/Marketplace/TrendyolMarketplaceCustomerQuestions.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/src/Trendyol/Marketplace/TrendyolMarketplaceOrders.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/src/Trendyol/Marketplace/TrendyolMarketplaceProducts.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/src/Trendyol/Marketplace/TrendyolMarketplaceShipment.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/src/Trendyol/Trendyol.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/src/Trendyol/TrendyolRequest.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/src/Trendyol/assets (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/src/Trendyol/assets/category_info.json (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/src/Trendyol/cache (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/src/Trendyol/cache/empty (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/vendor (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/vendor/autoload.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/vendor/composer (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/vendor/composer/ClassLoader.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/vendor/composer/InstalledVersions.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/vendor/composer/LICENSE (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/vendor/composer/autoload_classmap.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/vendor/composer/autoload_namespaces.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/vendor/composer/autoload_psr4.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/vendor/composer/autoload_real.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/vendor/composer/autoload_static.php (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/vendor/composer/installed.json (added)
-
tags/3.1.3/vendor/hasokeyk/trendyol/vendor/composer/installed.php (added)
-
tags/3.1.3/wc-trendyol.php (added)
-
trunk/README.txt (modified) (2 diffs)
-
trunk/admin/assets/js/categories_matching.js (modified) (1 diff)
-
trunk/admin/assets/js/wc_trendyol_general.js (modified) (2 diffs)
-
trunk/admin/class-wc-trendyol-admin.php (modified) (4 diffs)
-
trunk/admin/inc/wc_trendyol_ajax_processes.php (modified) (3 diffs)
-
trunk/admin/partials/settings_tabs/tools.php (modified) (2 diffs)
-
trunk/admin/partials/wc_trendyol_categories_matching.php (modified) (1 diff)
-
trunk/admin/partials/wc_trendyol_product_matching.php (modified) (1 diff)
-
trunk/composer.lock (modified) (2 diffs)
-
trunk/trendyol_inc/trendyol_adapter.php (modified) (3 diffs)
-
trunk/trendyol_inc/trendyol_metas.php (modified) (8 diffs)
-
trunk/vendor/bin (added)
-
trunk/vendor/composer/installed.json (modified) (3 diffs)
-
trunk/vendor/composer/installed.php (modified) (1 diff)
-
trunk/vendor/hasokeyk/trendyol/README.md (modified) (7 diffs)
-
trunk/vendor/hasokeyk/trendyol/composer.lock (modified) (1 diff)
-
trunk/vendor/hasokeyk/trendyol/src/Trendyol/Marketplace/TrendyolMarketplace.php (modified) (1 diff)
-
trunk/vendor/hasokeyk/trendyol/src/Trendyol/Marketplace/TrendyolMarketplaceAddresses.php (modified) (2 diffs)
-
trunk/vendor/hasokeyk/trendyol/src/Trendyol/Marketplace/TrendyolMarketplaceCategories.php (modified) (3 diffs)
-
trunk/vendor/hasokeyk/trendyol/src/Trendyol/Marketplace/TrendyolMarketplaceCustomerQuestions.php (modified) (1 diff)
-
trunk/vendor/hasokeyk/trendyol/src/Trendyol/Marketplace/TrendyolMarketplaceOrders.php (modified) (3 diffs)
-
trunk/vendor/hasokeyk/trendyol/src/Trendyol/Marketplace/TrendyolMarketplaceProducts.php (modified) (3 diffs)
-
trunk/vendor/hasokeyk/trendyol/src/Trendyol/Marketplace/TrendyolMarketplaceShipment.php (modified) (1 diff)
-
trunk/vendor/hasokeyk/trendyol/src/Trendyol/TrendyolRequest.php (modified) (2 diffs)
-
trunk/vendor/hasokeyk/trendyol/src/Trendyol/cache/get_categories.json (deleted)
-
trunk/vendor/hasokeyk/trendyol/vendor/autoload.php (modified) (1 diff)
-
trunk/vendor/hasokeyk/trendyol/vendor/composer/autoload_psr4.php (modified) (1 diff)
-
trunk/vendor/hasokeyk/trendyol/vendor/composer/autoload_real.php (modified) (2 diffs)
-
trunk/vendor/hasokeyk/trendyol/vendor/composer/autoload_static.php (modified) (3 diffs)
-
trunk/vendor/hasokeyk/trendyol/vendor/composer/installed.php (modified) (2 diffs)
-
trunk/wc-trendyol.php (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
wc-trendyol/trunk/README.txt
r3144213 r3152168 5 5 Requires at least: 6.6.1 6 6 Tested up to: 6.6.1 7 Stable tag: 3.1. 27 Stable tag: 3.1.3 8 8 Requires PHP: 7.4 9 9 License: GPLv2 or later … … 95 95 == Changelog == 96 96 97 = 3.1.2 = 98 * Barkodu sorunu çözüldü 97 = 3.1.3 = 98 * Kategori eşleştirme sayfasına sayfalama eklendi 99 * Kategori eşleştirme sayfasına alt kategorileri düzenleme eklendi 100 * Sayfalamada aynı sayfa sıfırlama hatası düzeltildi -
wc-trendyol/trunk/admin/assets/js/categories_matching.js
r3122649 r3152168 44 44 //KATEGORİ EŞLEŞTİRME - KAYDET 45 45 46 //ALT KATEGORİLERE UYGULA 47 $(document).on('click', '.apply_sub_cat_main_trendyol_cat_id', function(){ 48 49 var parent = $(this).closest('.wc_trendyol_form_group_inline'); 50 var wc_cat_id = $(parent).data('wc_cat_id'); 51 var trendyol_cat_id = $(' select',parent).val(); 52 53 $('.wc_trendyol_table .wc_trendyol_form_group_inline[data-wc_parent_id="' + wc_cat_id + '"] select').each(function(i,e){ 54 $(e).val(trendyol_cat_id).trigger('change'); 55 }) 56 57 return false; 58 }) 59 //ALT KATEGORİLERE UYGULA 60 46 61 }); -
wc-trendyol/trunk/admin/assets/js/wc_trendyol_general.js
r3129751 r3152168 116 116 swal.close(); 117 117 $('.wc_trendyol_autoload_table').trigger('autoload_finished'); 118 119 normal_search_select2(); 118 120 } 119 121 else{ … … 140 142 141 143 if($('.wc_trendyol_autoload_table').length > 0){ 144 var paged = get_url_param('paged') ?? 1; 142 145 var wc_cat_id = $('.wc_cat_id').val(); 143 146 var load_table = $('.wc_trendyol_autoload_table').data('load_table'); 144 147 var params = $('.wc_trendyol_card :input').serialize(); 145 auto_load_table(load_table, 1, wc_cat_id, null, params);148 auto_load_table(load_table, paged, wc_cat_id, null, params); 146 149 } 147 150 //OTOMATİK TABLO YÜKLEME -
wc-trendyol/trunk/admin/class-wc-trendyol-admin.php
r3144213 r3152168 6 6 private $plugin_name; 7 7 private $version; 8 public $license = null;8 public $license = null; 9 9 10 10 public function __construct($plugin_name = 'wc-trendyol', $version = '3.0.0'){ … … 189 189 if(!empty($trendyol_cat_info['trendyol_cat_id'])){ 190 190 update_term_meta($term_id, 'wc_trendyol_category_id', $trendyol_cat_info['trendyol_cat_id']); 191 192 update_term_meta($term_id, 'wc_trendyol_category_price_percent_level', $trendyol_cat_info['trendyol_price_percent_level']);193 update_term_meta($term_id, 'wc_trendyol_category_price_percent', $trendyol_cat_info['trendyol_price_percent']);194 update_term_meta($term_id, 'wc_trendyol_category_price_percent_type', $trendyol_cat_info['trendyol_price_percent_type']);195 196 update_term_meta($term_id, 'wc_trendyol_website_category_price_percent_level', $trendyol_cat_info['website_price_percent_level']);197 update_term_meta($term_id, 'wc_trendyol_website_category_price_percent', $trendyol_cat_info['website_price_percent']);198 update_term_meta($term_id, 'wc_trendyol_website_category_price_percent_type', $trendyol_cat_info['website_price_percent_type']);199 191 } 200 192 else{ 201 193 delete_term_meta($term_id, 'wc_trendyol_category_id'); 202 delete_term_meta($term_id, 'wc_trendyol_category_price_percent');203 delete_term_meta($term_id, 'wc_trendyol_category_price_percent_type');204 194 } 205 195 } … … 322 312 ]; 323 313 324 $sub_sql = "314 $sub_sql = " 325 315 SELECT 326 316 p.ID AS id, … … 623 613 } 624 614 615 public function wc_trendyol_wc_all_categories($wc_parent = 0, $page = 0, $line_count = 20, &$all_categories = [], $depth = 0){ 616 global $wpdb; 617 618 // SAYFALAMA (sadece ana kategoriler için) 619 if($wc_parent == 0){ 620 $page_sql = "LIMIT ".$line_count." OFFSET ".($page * $line_count); 621 } 622 else{ 623 $page_sql = ''; // Alt kategoriler için sayfalama yok 624 } 625 626 // SQL sorgusu: Ana ve alt kategorileri al 627 $sql = " 628 SELECT T.term_id, T.name, TT.parent, (SELECT COUNT(term_id) FROM ".$wpdb->prefix."term_taxonomy WHERE parent = TT.term_id) AS SUB 629 FROM ".$wpdb->prefix."term_taxonomy AS TT, ".$wpdb->prefix."terms AS T 630 WHERE T.term_id = TT.term_id 631 AND TT.taxonomy = 'product_cat' 632 AND TT.parent = ".$wc_parent." 633 ORDER BY TT.term_id ASC ".$page_sql; 634 635 $get_categories = $wpdb->get_results($sql); 636 637 if(!is_null($get_categories)){ 638 foreach($get_categories as $main_wc_cat){ 639 // Kategorinin başına derinliğe göre "-" ekle 640 $all_categories[] = (object)[ 641 'term_id' => $main_wc_cat->term_id ?? null, 642 'term_name' => str_repeat('-', $depth).' '.($main_wc_cat->name ?? null), 643 'parent' => $main_wc_cat->parent, 644 'sub' => ($main_wc_cat->SUB > 0), 645 ]; 646 647 // Alt kategoriler varsa tekrar çağır, derinliği bir artır 648 $this->wc_trendyol_wc_all_categories($main_wc_cat->term_id, 0, 0, $all_categories, $depth + 1); 649 650 } 651 } 652 653 return $all_categories; 654 } 655 656 657 public function wc_trendyol_wc_all_categories_count(){ 658 global $wpdb; 659 $sql = "SELECT T.term_id,T.name FROM ".$wpdb->prefix."term_taxonomy AS TT, ".$wpdb->prefix."terms AS T WHERE T.term_id = TT.term_id AND TT.taxonomy = 'product_cat' AND TT.parent = 0 ORDER BY TT.term_id ASC"; 660 $get_main_categories = $wpdb->get_results($sql); 661 return count((array)$get_main_categories); 662 } 625 663 //UTILS 626 664 -
wc-trendyol/trunk/admin/inc/wc_trendyol_ajax_processes.php
r3136837 r3152168 26 26 //LOAD TABLE 27 27 add_action('wp_ajax_wc_trendyol_product_matching_table', [$this, 'wc_trendyol_product_matching_table']); 28 add_action('wp_ajax_wc_trendyol_ product_matching_table', [$this, 'wc_trendyol_product_matching_table']);28 add_action('wp_ajax_wc_trendyol_categories_matching_table', [$this, 'wc_trendyol_categories_matching_table']); 29 29 add_action('wp_ajax_wc_trendyol_bulk_product_processes_table', [$this, 'wc_trendyol_bulk_product_processes_table']); 30 30 add_action('wp_ajax_wc_trendyol_bulk_images_processing_table', [$this, 'wc_trendyol_bulk_images_processing_table']); … … 445 445 <input type="text" name="'.$product_id.'[trendyol_barcode]" class="wc_trendyol_barcode" '.($sku_error ? 'placeholder' : 'value').'="'.(!empty($wc_trendyol_trendyol_barcode) ? $wc_trendyol_trendyol_barcode : $product_sku).'" style="width : 100%" '.($product_type == 'variable' ? 'readonly' : '').'> 446 446 </td> 447 <td style="text-align: center; z-index:'.(count((array) $products) - $r_id).'"">447 <td style="text-align: center; z-index:'.(count((array)$products) - $r_id).'""> 448 448 <button class="wc_trendyol_btn icon wc_trendyol_save_line_btn" data-tooltip="true" data-tooltip_text="Siteye Kaydet"> 449 449 <i class="fa-solid fa-floppy-disk"></i> … … 746 746 header('Content-Type: application/json; charset=utf-8'); 747 747 echo json_encode($results ?? []); 748 wp_die(); 749 } 750 751 public function wc_trendyol_categories_matching_table(){ 752 global $trendyol_admin, $trendyol_metas, $trendyol_adapter; 753 754 $paged = esc_attr($_POST['paged']); 755 756 parse_str($_POST['params'], $params); 757 758 $html = ''; 759 $page_line_count = 20; 760 $categories = $trendyol_admin->wc_trendyol_wc_all_categories(0, ($paged - 1), $page_line_count); 761 $total_categories_count = $trendyol_admin->wc_trendyol_wc_all_categories_count(); 762 $trendyol_categories = $trendyol_adapter->get_all_categories(); 763 764 if($categories != null){ 765 $html_body = ''; 766 foreach($categories as $category){ 767 768 $wc_cat_id = $category->term_id; 769 770 $get_wc_trendyol_category_id = get_term_meta($wc_cat_id, 'wc_trendyol_category_id', true); 771 $convert_option = $trendyol_admin->trendyol_categories_array_to_select_option($trendyol_categories->categories ?? [], 0, ($get_wc_trendyol_category_id ?? 0)); 772 773 $html_body .= '<tr>'; 774 $html_body .= '<td>'.($category->term_name ?? 'xx').'</td>'; 775 $html_body .= '<td>'; 776 $html_body .= '<div class="wc_trendyol_form_group_inline" data-wc_cat_id="'.$wc_cat_id.'" data-wc_parent_id="'.($category->parent).'">'; 777 $html_body .= '<select name="'.$wc_cat_id.'[trendyol_cat_id]" id="wc_trendyol_wc_cat_'.$wc_cat_id.'" class="wc_trendyol_normal_search form-required" aria-required="true" style="width: 100%">'; 778 $html_body .= '<option value="0">Trendyol kategorisi seçiniz</option>'; 779 $html_body .= $convert_option; 780 $html_body .= '</select>'; 781 if(isset($category->sub) and $category->sub === true){ 782 $html_body .= '<button class="wc_trendyol_btn apply_sub_cat_main_trendyol_cat_id" data-wc_cat_id="'.($wc_cat_id ?? 0).'"><i class="fa-solid fa-arrow-down-wide-short"></i> Alt Kategorilere Uygula</button>'; 783 } 784 $html_body .= '</div>'; 785 $html_body .= '</td>'; 786 $html_body .= '</tr>'; 787 788 } 789 790 $html .= ' 791 <table class="wc_trendyol_table"> 792 <thead> 793 <tr> 794 <th>Woocommerce Kategori</th> 795 <th>Trendyol Kategori</th> 796 </tr> 797 </thead> 798 <tbody> 799 '.$html_body.' 800 </tbody> 801 </table> 802 '; 803 804 } 805 else{ 806 $html = '<div class="wc_trendyol_alert">ÜRÜN BULUNAMADI</div>'; 807 } 808 809 $results = [ 810 'status' => 'success', 811 'data' => $html, 812 'pagination' => $trendyol_admin->get_pagination_html(ceil($total_categories_count / $page_line_count), $paged), 813 ]; 814 815 header('Content-Type: application/json; charset=utf-8'); 816 echo json_encode($results); 748 817 wp_die(); 749 818 } -
wc-trendyol/trunk/admin/partials/settings_tabs/tools.php
r3140899 r3152168 1 1 <?php 2 global $trendyol_wc_adapter, $trendyol_adapter, $trendyol_admin ;2 global $trendyol_wc_adapter, $trendyol_adapter, $trendyol_admin, $trendyol_product_sync_admin; 3 3 4 wp_enqueue_script($trendyol_admin->plugin_name.'-tools', WC_TRENDYOL_DIR_URL.'/admin/assets/js/tools.js', [], $trendyol_admin->version); 5 4 wp_enqueue_script($trendyol_admin->plugin_name.'-tools', WC_TRENDYOL_DIR_URL.'/admin/assets/js/tools.js', [], $trendyol_admin->version); 6 5 ?> 7 6 <div class="wc_trendyol_tools"> … … 25 24 <label for="" class="wc_trendyol_form_label">Tüm trendyol bilgilerini siler. Her şeye en baştan başlarsınız</label> 26 25 <button class="wc_trendyol_btn wc_trendyol_plugin_reset_btn" style="background: #ba0000" data-tooltip="true" data-tooltip_text="Sadece eminseniz kullanın"><?=__("Fabrika Ayarlarına Dön", 'wc-trendyol')?></button> 27 <img src="<?=WC_TRENDYOL_DIR_URL?>admin/assets/img/emoji-no.gif" style="width: 30px;margin-right: 10px;float: left;margin-top: 2px;" data-tooltip="true" data-tooltip_text="Sadece eminseniz kullanın">26 <img src="<?=WC_TRENDYOL_DIR_URL?>admin/assets/img/emoji-no.gif" style="width: 30px;margin-right: 10px;float: left;margin-top: 2px;" data-tooltip="true" data-tooltip_text="Sadece eminseniz kullanın"> 28 27 </div> 29 28 -
wc-trendyol/trunk/admin/partials/wc_trendyol_categories_matching.php
r3122649 r3152168 4 4 // wp_enqueue_style($trendyol_admin->plugin_name.'-product_matching-css', WC_TRENDYOL_DIR_URL.'/admin/assets/css/product_matching.css', [], $trendyol_admin->version, 'all'); 5 5 wp_enqueue_script($trendyol_admin->plugin_name.'-categories_matching-js', WC_TRENDYOL_DIR_URL.'/admin/assets/js/categories_matching.js', [], $trendyol_admin->version); 6 7 $wc_cat_id = (int)(($_GET['wc_cat_id']) ?? 0);8 9 $product_categories = get_terms([10 'taxonomy' => "product_cat",11 'hide_empty' => false,12 ]);13 14 6 ?> 15 7 <div class="wc_trendyol_card wc_trendyol_categories_matching_page"> 16 <?php 17 if($product_categories != null){ 18 ?> 19 <div class="wc_trendyol_card_header"> 20 <div class="wc_trendyol_card_toolbar"> 21 22 </div> 23 <div class="wc_trendyol_card_title"> 24 <?=__('Toplu Kategori Eşitleme', 'wc-trendyol');?> 25 </div> 26 <div class="wc_trendyol_card_toolbar item_right"> 27 28 <button class="wc_trendyol_btn wc_trendyol_categories_matching_btn">Kaydet</button> 29 30 </div> 8 <form action="" method="post" class="wc_trendyol_categories_matching_frm"> 9 <div class="wc_trendyol_card_header"> 10 <div class="wc_trendyol_card_toolbar"> 11 <input type="hidden" name="wc_cat_id" class="wc_cat_id" value="1"> 31 12 </div> 32 <div class="wc_trendyol_card_body wc_trendyol_autoload_table"> 33 <form action="" method="" class="wc_trendyol_categories_matching_frm"> 34 <?php 35 36 $args = [ 37 'taxonomy' => 'product_cat', 38 'hide_empty' => false, 39 'orderby' => 'id', 40 'order' => 'ASC', 41 ]; 42 $all_categories = get_categories($args); 43 // $all_categories = $trendyol_admin->sort_terms_hierarchicaly($all_categories); 44 $trendyol_categories = $trendyol_adapter->get_all_categories(); 45 46 if($all_categories != null){ 47 ?> 48 <table class="wc_trendyol_table"> 49 <thead> 50 <tr> 51 <th><?=__('Kategori Adı', 'wc-trendyol');?></th> 52 <th><?=__('Trendyol Kategorisi', 'wc-trendyol');?></th> 53 </tr> 54 </thead> 55 <tbody> 56 <?php 57 foreach($all_categories as $category){ 58 $get_wc_trendyol_category_id = get_term_meta($category->term_id, 'wc_trendyol_category_id', true); 59 60 $get_wc_trendyol_category_price_percent_level = get_term_meta($category->term_id, 'wc_trendyol_category_price_percent_level', true); 61 $get_wc_trendyol_category_price_percent = get_term_meta($category->term_id, 'wc_trendyol_category_price_percent', true); 62 $get_wc_trendyol_category_price_percent_type = get_term_meta($category->term_id, 'wc_trendyol_category_price_percent_type', true); 63 64 $get_wc_website_category_price_percent_level = get_term_meta($category->term_id, 'wc_trendyol_website_category_price_percent_level', true); 65 $get_wc_website_category_price_percent = get_term_meta($category->term_id, 'wc_trendyol_website_category_price_percent', true); 66 $get_wc_website_category_price_percent_type = get_term_meta($category->term_id, 'wc_trendyol_website_category_price_percent_type', true); 67 ?> 68 <tr> 69 <td><?=$category->name ?? 'XX'?></td> 70 <td> 71 <?php 72 $convert_option = $trendyol_admin->trendyol_categories_array_to_select_option($trendyol_categories->categories ?? [], 0, ($get_wc_trendyol_category_id ?? 0)); 73 ?> 74 <div class="wc_trendyol_form_group"> 75 <select name="<?=$category->term_id?>[trendyol_cat_id]" id="wc_trendyol_wc_cat_<?=$category->term_id?>" class="wc_trendyol_normal_search form-required" aria-required="true" style="width: 100%"> 76 <option value="0"><?=__('Trendyol kategorisi seçiniz', 'wc-trendyol')?></option> 77 <?php 78 echo $convert_option; 79 ?> 80 </select> 81 </div> 82 <?php 83 ?> 84 </td> 85 </tr> 86 <?php 87 } 88 ?> 89 </tbody> 90 </table> 91 <?php 92 } 93 else{ 94 ?> 95 <div class="wc_trendyol_alert"> 96 Hiç kategoriniz yok. Trendyolda ürünleriniz varsa otomatik olarak aktarabilirsiniz. Aktarma işlemi için 97 <a href="/wp-admin/admin.php?page=trendyol_import_product&action=trendyol_to_website&paged=1">buraya tıklayın</a> 98 </div> 99 <?php 100 } 101 102 ?> 103 </form> 13 <div class="wc_trendyol_card_title"> 14 <?=__('Toplu Kategori Eşitleme', 'wc-trendyol');?> 104 15 </div> 105 <?php 106 } 107 else{ 108 ?> 109 <div class="wc_trendyol_alert"><?=__('Sitenize ait kategori bulunamadı. Lütfen önce kategori ekleyin.', 'wc-trendyol');?></div> 110 <?php 111 } 112 ?> 16 <div class="wc_trendyol_card_toolbar item_right"> 17 <button class="wc_trendyol_btn wc_trendyol_categories_matching_btn">Tümünü Kaydet</button> 18 </div> 19 </div> 20 <div class="wc_trendyol_card_body wc_trendyol_autoload_table" data-load_table="wc_trendyol_categories_matching_table"> 21 <div class="wc_trendyol_please_wait"> 22 <?=__('LÜTFEN ÖNCE KATEGORİ SEÇİN', 'wc-trendyol');?> 23 </div> 24 </div> 25 <div class="wc_trendyol_card_footer"></div> 26 </form> 113 27 </div> -
wc-trendyol/trunk/admin/partials/wc_trendyol_product_matching.php
r3089013 r3152168 43 43 </div> 44 44 </div> 45 <div class="wc_trendyol_card_body wc_trendyol_autoload_table" data- load_table="wc_trendyol_product_matching_table">45 <div class="wc_trendyol_card_body wc_trendyol_autoload_table" data-page_load="true" data-load_table="wc_trendyol_product_matching_table"> 46 46 <div class="wc_trendyol_please_wait"> 47 47 <?=__('LÜTFEN ÖNCE KATEGORİ SEÇİN', 'wc-trendyol');?> -
wc-trendyol/trunk/composer.lock
r3127678 r3152168 9 9 { 10 10 "name": "hasokeyk/trendyol", 11 "version": "1.0. 27",11 "version": "1.0.30", 12 12 "source": { 13 13 "type": "git", 14 14 "url": "https://github.com/Hasokeyk/trendyol-php.git", 15 "reference": " b167138be31bca5197b28c98753dd341465e5373"15 "reference": "d319d967b58183ccb47492e288a97e68eae872d8" 16 16 }, 17 17 "dist": { 18 18 "type": "zip", 19 "url": "https://api.github.com/repos/Hasokeyk/trendyol-php/zipball/ b167138be31bca5197b28c98753dd341465e5373",20 "reference": " b167138be31bca5197b28c98753dd341465e5373",19 "url": "https://api.github.com/repos/Hasokeyk/trendyol-php/zipball/d319d967b58183ccb47492e288a97e68eae872d8", 20 "reference": "d319d967b58183ccb47492e288a97e68eae872d8", 21 21 "shasum": "" 22 22 }, … … 51 51 "support": { 52 52 "issues": "https://github.com/Hasokeyk/trendyol-php/issues", 53 "source": "https://github.com/Hasokeyk/trendyol-php/tree/1.0. 27"53 "source": "https://github.com/Hasokeyk/trendyol-php/tree/1.0.30" 54 54 }, 55 "time": "2024-0 7-28T12:29:44+00:00"55 "time": "2024-09-10T22:05:28+00:00" 56 56 } 57 57 ], -
wc-trendyol/trunk/trendyol_inc/trendyol_adapter.php
r3136837 r3152168 166 166 goto result; 167 167 } 168 else if($list_price > =$sale_price){169 $message = 'İndirimli fiyat, satış fiyatından fazla veya aynıolamaz';168 else if($list_price > $sale_price){ 169 $message = 'İndirimli fiyat, satış fiyatından fazla olamaz'; 170 170 $product_control = false; 171 171 goto result; … … 278 278 $trendyol_product = $this->trendyol->TrendyolMarketplaceProducts(); 279 279 280 281 280 $new_product_attributes = []; 282 281 $get_cat_info = $this->get_category_info($category_id); … … 336 335 'attributes' => $new_product_attributes, 337 336 ]); 337 } 338 339 public function add_multi_product($products = null){ 340 global $trendyol_wc_adapter, $trendyol_admin, $trendyol_adapter; 341 342 $trendyol_product = $this->trendyol->TrendyolMarketplaceProducts(); 343 344 $suitable_products = null; 345 foreach($products as $p_id => $product){ 346 347 $barcode = $product['barcode'] ?? null; 348 $title = $product['title'] ?? null; 349 $main_barcode = $product['productMainId'] ?? null; 350 $brand_id = $product['brandId'] ?? null; 351 $trendyol_cat_id = $product['categoryId'] ?? null; 352 $stock_qty = $product['quantity'] ?? null; 353 $desc = $product['description'] ?? null; 354 $images = $product['images'] ?? null; 355 $vat = $product['vatRate'] ?? null; 356 $list_price = $product['listPrice'] ?? null; 357 $sale_price = $product['salePrice'] ?? null; 358 $attrs = $product['attributes'] ?? null; 359 $cargo_company_id = $product['cargoCompanyId'] ?? null; 360 361 $product_control = $this->add_product_control($main_barcode, $barcode, $title, $desc, $images, $vat, $stock_qty, $list_price, $sale_price, $brand_id, $trendyol_cat_id, $attrs, $cargo_company_id); 362 $trendyol_admin->wc_trendyol_error_log('Kontrol : '.$barcode.' - '.json_encode($product_control)); 363 if($product_control['status'] == 'success'){ 364 365 $new_product_attributes = []; 366 $get_cat_info = $trendyol_adapter->get_category_info($trendyol_cat_id); 367 foreach($get_cat_info->categoryAttributes as $attr){ 368 if(isset($attrs->{$attr->attribute->id})){ 369 if($attr->allowCustom){ 370 $new_product_attributes[] = [ 371 'attributeId' => $attr->attribute->id, 372 'customAttributeValue' => ($attrs->{$attr->attribute->id}), 373 ]; 374 } 375 else{ 376 377 if(!empty($attrs->{$attr->attribute->id})){ 378 $new_product_attributes[] = [ 379 'attributeId' => $attr->attribute->id, 380 'attributeValueId' => ($attrs->{$attr->attribute->id}), 381 ]; 382 } 383 else{ 384 $get_trendyol_attr_default = $trendyol_wc_adapter->get_term_meta_trendyol_attr_default($attr->attribute->id); 385 if(!is_null($get_trendyol_attr_default)){ 386 $new_product_attributes[] = [ 387 'attributeId' => $attr->attribute->id, 388 'attributeValueId' => $get_trendyol_attr_default, 389 ]; 390 } 391 } 392 } 393 } 394 } 395 396 $suitable_products[$p_id] = $product; 397 $suitable_products[$p_id]['attributes'] = $new_product_attributes; 398 } 399 } 400 401 $trendyol_admin->wc_trendyol_error_log('Dizi : '.json_encode($suitable_products)); 402 403 if(is_null($suitable_products)){ 404 $trendyol_admin->wc_trendyol_error_log('Çoklu gönderilecek ürün bulunamadı'); 405 return false; 406 } 407 408 return $trendyol_product->create_multi_product($suitable_products); 338 409 } 339 410 -
wc-trendyol/trunk/trendyol_inc/trendyol_metas.php
r3144213 r3152168 3 3 class trendyol_metas{ 4 4 5 private static string $pro_prefix = 'wc_trendyol_pro';5 private static string $pro_prefix = 'wc_trendyol_pro'; 6 6 private static string $free_prefix = 'wc_trendyol'; 7 public $wc; 8 9 function __construct(){ 10 11 if(!class_exists('WC_Product_Factory')){ 12 require (ABSPATH).'/wp-content/plugins/woocommerce/includes/class-wc-product-factory.php'; 13 } 14 15 $this->wc = new WC_Product_Factory(); 16 } 7 17 8 18 //SETTINGS … … 32 42 //PRODUCT 33 43 public function get_meta_trendyol_title($wc_product_id){ 34 $product = wc_get_product($wc_product_id);44 $product = $this->wc->get_product($wc_product_id); 35 45 $product_name = get_post_meta($wc_product_id, 'wc_trendyol_title', true); 36 46 $product_name = !empty($product_name) ? $product_name : $product->get_name(); … … 40 50 41 51 public function get_meta_trendyol_description($wc_product_id){ 42 $product = wc_get_product($wc_product_id); 43 $product_type = $product->get_type(); 52 53 $product = $this->wc->get_product($wc_product_id); 54 $product_type = $product->get_type() ?? null; 44 55 45 56 if($product_type == 'variation'){ 46 57 //ALT ÜRÜN 47 $main_product = wc_get_product($product->get_parent_id());58 $main_product = $this->wc->get_product($product->get_parent_id()); 48 59 } 49 60 else if($product_type == 'variable'){ … … 79 90 80 91 public function get_meta_trendyol_images($wc_product_id){ 81 $product = wc_get_product($wc_product_id);92 $product = $this->wc->get_product($wc_product_id); 82 93 83 94 $images = null; … … 85 96 if($product->get_type() == 'variation'){ 86 97 $parent_product_id = $product->get_parent_id(); 87 $parent_product = wc_get_product($parent_product_id);98 $parent_product = $this->wc->get_product($parent_product_id); 88 99 89 100 $parent_main_image_id = $parent_product->get_image_id(); … … 118 129 119 130 public function get_meta_trendyol_sale_price($wc_product_id){ 120 if(metadata_exists('post', $wc_product_id, 'wc_trendyol_sale_price')){ 121 return get_post_meta($wc_product_id, 'wc_trendyol_sale_price', true); 122 } 123 return null; 131 $trendyol_sale_price = get_post_meta($wc_product_id, 'wc_trendyol_sale_price', true); 132 if(strlen($trendyol_sale_price) > 0){ 133 return $trendyol_sale_price; 134 } 135 else{ 136 $wc_product = $this->wc->get_product($wc_product_id); 137 return $wc_product->get_sale_price(); 138 } 124 139 } 125 140 126 141 public function get_meta_trendyol_discount_price($wc_product_id){ 127 if(metadata_exists('post', $wc_product_id, 'wc_trendyol_discount_price')){ 128 return get_post_meta($wc_product_id, 'wc_trendyol_discount_price', true); 129 } 130 return null; 142 $trendyol_discount_price = get_post_meta($wc_product_id, 'wc_trendyol_discount_price', true); 143 if(strlen($trendyol_discount_price) > 0){ 144 return $trendyol_discount_price; 145 } 146 else{ 147 $wc_product = $this->wc->get_product($wc_product_id); 148 return $wc_product->get_regular_price(); 149 } 131 150 } 132 151 … … 135 154 if(strlen($main_barcode) > 0){ 136 155 return $main_barcode; 137 }else{ 138 $wc_product = wc_get_product($wc_product_id); 156 } 157 else{ 158 $wc_product = $this->wc->get_product($wc_product_id); 139 159 $wc_product_type = $wc_product->get_type(); 140 160 if($wc_product_type == 'variation'){ 141 161 $wc_parent_product_id = $wc_product->get_parent_id(); 142 $main_barcode = wc_get_product($wc_parent_product_id)->get_sku(); 143 }else{ 162 $main_barcode = $this->wc->get_product($wc_parent_product_id)->get_sku(); 163 } 164 else{ 144 165 $main_barcode = $wc_product->get_sku(); 145 166 } … … 154 175 } 155 176 else{ 156 $wc_product = wc_get_product($wc_product_id);177 $wc_product = $this->wc->get_product($wc_product_id); 157 178 return $wc_product->get_sku(); 158 179 } -
wc-trendyol/trunk/vendor/composer/installed.json
r3127678 r3152168 3 3 { 4 4 "name": "hasokeyk/trendyol", 5 "version": "1.0. 27",6 "version_normalized": "1.0. 27.0",5 "version": "1.0.30", 6 "version_normalized": "1.0.30.0", 7 7 "source": { 8 8 "type": "git", 9 9 "url": "https://github.com/Hasokeyk/trendyol-php.git", 10 "reference": " b167138be31bca5197b28c98753dd341465e5373"10 "reference": "d319d967b58183ccb47492e288a97e68eae872d8" 11 11 }, 12 12 "dist": { 13 13 "type": "zip", 14 "url": "https://api.github.com/repos/Hasokeyk/trendyol-php/zipball/ b167138be31bca5197b28c98753dd341465e5373",15 "reference": " b167138be31bca5197b28c98753dd341465e5373",14 "url": "https://api.github.com/repos/Hasokeyk/trendyol-php/zipball/d319d967b58183ccb47492e288a97e68eae872d8", 15 "reference": "d319d967b58183ccb47492e288a97e68eae872d8", 16 16 "shasum": "" 17 17 }, … … 20 20 "ext-json": "*" 21 21 }, 22 "time": "2024-0 7-28T12:29:44+00:00",22 "time": "2024-09-10T22:05:28+00:00", 23 23 "type": "library", 24 24 "installation-source": "dist", … … 48 48 "support": { 49 49 "issues": "https://github.com/Hasokeyk/trendyol-php/issues", 50 "source": "https://github.com/Hasokeyk/trendyol-php/tree/1.0. 27"50 "source": "https://github.com/Hasokeyk/trendyol-php/tree/1.0.30" 51 51 }, 52 52 "install-path": "../hasokeyk/trendyol" -
wc-trendyol/trunk/vendor/composer/installed.php
r3127678 r3152168 21 21 ), 22 22 'hasokeyk/trendyol' => array( 23 'pretty_version' => '1.0. 27',24 'version' => '1.0. 27.0',25 'reference' => ' b167138be31bca5197b28c98753dd341465e5373',23 'pretty_version' => '1.0.30', 24 'version' => '1.0.30.0', 25 'reference' => 'd319d967b58183ccb47492e288a97e68eae872d8', 26 26 'type' => 'library', 27 27 'install_path' => __DIR__ . '/../hasokeyk/trendyol', -
wc-trendyol/trunk/vendor/hasokeyk/trendyol/README.md
r2833296 r3152168 20 20 <?php 21 21 22 use Hasokeyk\ Trendyol\Trendyol;22 use Hasokeyk\trendyol\Trendyol; 23 23 24 24 require (__DIR__)."/vendor/autoload.php"; … … 39 39 <?php 40 40 41 use Hasokeyk\ Trendyol\Trendyol;41 use Hasokeyk\trendyol\Trendyol; 42 42 43 43 require (__DIR__)."/vendor/autoload.php"; … … 61 61 <?php 62 62 63 use Hasokeyk\ Trendyol\Trendyol;63 use Hasokeyk\trendyol\Trendyol; 64 64 65 65 require (__DIR__)."/vendor/autoload.php"; … … 83 83 <?php 84 84 85 use Hasokeyk\ Trendyol\Trendyol;85 use Hasokeyk\trendyol\Trendyol; 86 86 87 87 require (__DIR__)."/vendor/autoload.php"; … … 105 105 <?php 106 106 107 use Hasokeyk\ Trendyol\Trendyol;107 use Hasokeyk\trendyol\Trendyol; 108 108 109 109 require (__DIR__)."/vendor/autoload.php"; … … 126 126 <?php 127 127 128 use Hasokeyk\ Trendyol\Trendyol;128 use Hasokeyk\trendyol\Trendyol; 129 129 130 130 require (__DIR__)."/vendor/autoload.php"; … … 151 151 <?php 152 152 153 use Hasokeyk\ Trendyol\Trendyol;153 use Hasokeyk\trendyol\Trendyol; 154 154 155 155 require (__DIR__)."/vendor/autoload.php"; -
wc-trendyol/trunk/vendor/hasokeyk/trendyol/composer.lock
r2833296 r3152168 18 18 }, 19 19 "platform-dev": [], 20 "plugin-api-version": "2. 3.0"20 "plugin-api-version": "2.6.0" 21 21 } -
wc-trendyol/trunk/vendor/hasokeyk/trendyol/src/Trendyol/Marketplace/TrendyolMarketplace.php
r3144229 r3152168 2 2 3 3 namespace Hasokeyk\Trendyol\Marketplace; 4 5 use Hasokeyk\Trendyol\TrendyolRequest;6 4 7 5 class TrendyolMarketplace{ -
wc-trendyol/trunk/vendor/hasokeyk/trendyol/src/Trendyol/Marketplace/TrendyolMarketplaceAddresses.php
r3144229 r3152168 2 2 3 3 namespace Hasokeyk\Trendyol\Marketplace; 4 5 use Hasokeyk\Trendyol\TrendyolRequest;6 4 7 5 class TrendyolMarketplaceAddresses{ … … 18 16 } 19 17 20 publicfunction request(){21 return new TrendyolRequest($this->supplierId, $this->username, $this->password);22 }18 function request(){ 19 return $this->trendyol->request; 20 } 23 21 24 22 public function get_my_addresses(){ -
wc-trendyol/trunk/vendor/hasokeyk/trendyol/src/Trendyol/Marketplace/TrendyolMarketplaceCategories.php
r3144229 r3152168 5 5 class TrendyolMarketplaceCategories{ 6 6 7 public $supplierId;8 public $username;9 public $password;7 public $supplierId; 8 public $username; 9 public $password; 10 10 private $trendyol; 11 11 … … 22 22 23 23 public function get_categories(){ 24 $cache = $this->request()->cache('get_categories'); 25 if($cache === false){ 26 $url = 'https://api.trendyol.com/sapigw/product-categories'; 27 $result = $this->request()->get($url); 28 $this->request()->cache('get_categories', $result); 29 } 30 else{ 31 $result = $cache; 32 } 24 $url = 'https://api.trendyol.com/sapigw/product-categories'; 25 $result = $this->request()->get($url); 33 26 return $result; 34 27 } … … 46 39 $category_info_json = json_decode(file_get_contents((__DIR__).'/../assets/category_info.json'), true); 47 40 $keys = $this->trendyol_array_search($category_info_json['Categories'], 'Name', trim($match)); 48 49 print_r($keys);50 51 41 $supplider_cats->$id = (object)[ 52 42 'cat_id' => trim($keys['Id']), -
wc-trendyol/trunk/vendor/hasokeyk/trendyol/src/Trendyol/Marketplace/TrendyolMarketplaceCustomerQuestions.php
r3144229 r3152168 2 2 3 3 namespace Hasokeyk\Trendyol\Marketplace; 4 5 use Hasokeyk\Trendyol\TrendyolRequest;6 4 7 5 class TrendyolMarketplaceCustomerQuestions{ -
wc-trendyol/trunk/vendor/hasokeyk/trendyol/src/Trendyol/Marketplace/TrendyolMarketplaceOrders.php
r3144229 r3152168 2 2 3 3 namespace Hasokeyk\Trendyol\Marketplace; 4 5 use Hasokeyk\Trendyol\TrendyolRequest;6 4 7 5 class TrendyolMarketplaceOrders{ … … 16 14 $this->password = $trendyol->password; 17 15 $this->trendyol = $trendyol; 16 } 17 18 function request(){ 19 return $this->trendyol->request; 18 20 } 19 21 … … 36 38 $new_url = http_build_query($required_query_data); 37 39 38 $result = $this-> trendyol->request->get($url.'?'.$new_url);40 $result = $this->request()->get($url.'?'.$new_url); 39 41 return $result; 40 42 } -
wc-trendyol/trunk/vendor/hasokeyk/trendyol/src/Trendyol/Marketplace/TrendyolMarketplaceProducts.php
r3144229 r3152168 3 3 namespace Hasokeyk\Trendyol\Marketplace; 4 4 5 use Hasokeyk\Trendyol\TrendyolRequest;6 7 5 class TrendyolMarketplaceProducts{ 8 6 9 public $supplierId;10 public $username;11 public $password;7 public $supplierId; 8 public $username; 9 public $password; 12 10 private $trendyol; 13 11 … … 76 74 77 75 return false; 76 } 77 78 public function create_multi_product($data = []){ 79 $url = $this->request()->api_url.'suppliers/'.$this->supplierId.'/v2/products'; 80 81 $post_data['items'] = $data; 82 83 $product_result = $this->request()->post($url, $post_data); 84 if(isset($product_result->batchRequestId)){ 85 $result = $this->get_batch_request_result($product_result->batchRequestId); 86 } 87 else{ 88 $result = $product_result; 89 } 90 91 return $result; 78 92 } 79 93 … … 249 263 } 250 264 $product_info['images'] = $images; 251 return $this->update_product_info($barcode, $product_info); 265 $update_product = $this->update_product_info($barcode, $product_info); 266 return $update_product; 252 267 } 253 268 } -
wc-trendyol/trunk/vendor/hasokeyk/trendyol/src/Trendyol/Marketplace/TrendyolMarketplaceShipment.php
r3144229 r3152168 1 1 <?php 2 3 namespace Hasokeyk\Trendyol\Marketplace; 4 5 use Hasokeyk\Trendyol\TrendyolRequest; 6 7 class TrendyolMarketplaceShipment{ 8 9 public $supplierId; 10 public $username; 11 public $password; 12 13 function __construct($supplierId = null, $username = null, $password = null){ 14 $this->supplierId = $supplierId; 15 $this->username = $username; 16 $this->password = $password; 17 } 18 19 public function request(){ 20 return new TrendyolRequest($this->supplierId, $this->username, $this->password); 21 } 22 23 public function get_shipment_companies(){ 24 25 $data = [ 26 [ 27 'ID' => 42, 28 'company_shortname' => 'DHLMP', 29 'company_name' => 'DHL Marketplace', 30 'tax_number' => '951-241-77-13' 31 ], 32 [ 33 'ID' => 38, 34 'company_shortname' => 'SENDEOMP', 35 'company_name' => 'Sendeo Marketplace', 36 'tax_number' => '2910804196' 37 ], 38 [ 39 'ID' => 36, 40 'company_shortname' => 'NETMP', 41 'company_name' => 'NetKargo Lojistik Marketplace', 42 'tax_number' => '6930094440' 43 ], 44 [ 45 'ID' => 34, 46 'company_shortname' => 'MARSMP', 47 'company_name' => 'Mars Lojistik Marketplace', 48 'tax_number' => '6120538808' 49 ], 50 [ 51 'ID' => 39, 52 'company_shortname' => 'BIRGUNDEMP', 53 'company_name' => 'Bir Günde Kargo Marketplace', 54 'tax_number' => '1770545653' 55 ], 56 [ 57 'ID' => 35, 58 'company_shortname' => 'OCTOMP', 59 'company_name' => 'Octovan Lojistik Marketplace', 60 'tax_number' => '6330506845' 61 ], 62 [ 63 'ID' => 30, 64 'company_shortname' => 'BORMP', 65 'company_name' => 'Borusan Lojistik Marketplace', 66 'tax_number' => '1800038254' 67 ], 68 [ 69 'ID' => 12, 70 'company_shortname' => 'UPSMP', 71 'company_name' => 'UPS Kargo Marketplace', 72 'tax_number' => '9170014856' 73 ], 74 [ 75 'ID' => 13, 76 'company_shortname' => 'AGTMP', 77 'company_name' => 'AGT Marketplace', 78 'tax_number' => '6090414309' 79 ], 80 [ 81 'ID' => 14, 82 'company_shortname' => 'CAIMP', 83 'company_name' => 'Cainiao Marketplace', 84 'tax_number' => '0' 85 ], 86 [ 87 'ID' => 10, 88 'company_shortname' => 'MNGMP', 89 'company_name' => 'MNG Kargo Marketplace', 90 'tax_number' => '6080712084' 91 ], 92 [ 93 'ID' => 19, 94 'company_shortname' => 'PTTMP', 95 'company_name' => 'PTT Kargo Marketplace', 96 'tax_number' => '7320068060' 97 ], 98 [ 99 'ID' => 9, 100 'company_shortname' => 'SURATMP', 101 'company_name' => 'Sürat Kargo Marketplace', 102 'tax_number' => '7870233582' 103 ], 104 [ 105 'ID' => 17, 106 'company_shortname' => 'TEXMP', 107 'company_name' => 'Trendyol Express Marketplace', 108 'tax_number' => '8590921777' 109 ], 110 [ 111 'ID' => 6, 112 'company_shortname' => 'HOROZMP', 113 'company_name' => 'Horoz Kargo Marketplace', 114 'tax_number' => '4630097122' 115 ], 116 [ 117 'ID' => 20, 118 'company_shortname' => 'CEVAMP', 119 'company_name' => 'CEVA Marketplace', 120 'tax_number' => '8450298557' 121 ], 122 [ 123 'ID' => 4, 124 'company_shortname' => 'YKMP', 125 'company_name' => 'Yurtiçi Kargo Marketplace', 126 'tax_number' => '3130557669' 127 ], 128 [ 129 'ID' => 7, 130 'company_shortname' => 'ARASMP', 131 'company_name' => 'Aras Kargo Marketplace', 132 'tax_number' => '720039666' 133 ] 134 ]; 135 136 return $data; 137 } 138 139 } 2 3 namespace Hasokeyk\Trendyol\Marketplace; 4 5 class TrendyolMarketplaceShipment{ 6 7 private $trendyol; 8 9 function __construct($trendyol){ 10 $this->trendyol = $trendyol; 11 } 12 13 function request(){ 14 return $this->trendyol->request; 15 } 16 17 public function get_shipment_companies(){ 18 19 $data = [ 20 [ 21 'ID' => 42, 22 'company_shortname' => 'DHLMP', 23 'company_name' => 'DHL Marketplace', 24 'tax_number' => '951-241-77-13' 25 ], 26 [ 27 'ID' => 38, 28 'company_shortname' => 'SENDEOMP', 29 'company_name' => 'Sendeo Marketplace', 30 'tax_number' => '2910804196' 31 ], 32 [ 33 'ID' => 36, 34 'company_shortname' => 'NETMP', 35 'company_name' => 'NetKargo Lojistik Marketplace', 36 'tax_number' => '6930094440' 37 ], 38 [ 39 'ID' => 34, 40 'company_shortname' => 'MARSMP', 41 'company_name' => 'Mars Lojistik Marketplace', 42 'tax_number' => '6120538808' 43 ], 44 [ 45 'ID' => 39, 46 'company_shortname' => 'BIRGUNDEMP', 47 'company_name' => 'Bir Günde Kargo Marketplace', 48 'tax_number' => '1770545653' 49 ], 50 [ 51 'ID' => 35, 52 'company_shortname' => 'OCTOMP', 53 'company_name' => 'Octovan Lojistik Marketplace', 54 'tax_number' => '6330506845' 55 ], 56 [ 57 'ID' => 30, 58 'company_shortname' => 'BORMP', 59 'company_name' => 'Borusan Lojistik Marketplace', 60 'tax_number' => '1800038254' 61 ], 62 [ 63 'ID' => 12, 64 'company_shortname' => 'UPSMP', 65 'company_name' => 'UPS Kargo Marketplace', 66 'tax_number' => '9170014856' 67 ], 68 [ 69 'ID' => 13, 70 'company_shortname' => 'AGTMP', 71 'company_name' => 'AGT Marketplace', 72 'tax_number' => '6090414309' 73 ], 74 [ 75 'ID' => 14, 76 'company_shortname' => 'CAIMP', 77 'company_name' => 'Cainiao Marketplace', 78 'tax_number' => '0' 79 ], 80 [ 81 'ID' => 10, 82 'company_shortname' => 'MNGMP', 83 'company_name' => 'MNG Kargo Marketplace', 84 'tax_number' => '6080712084' 85 ], 86 [ 87 'ID' => 19, 88 'company_shortname' => 'PTTMP', 89 'company_name' => 'PTT Kargo Marketplace', 90 'tax_number' => '7320068060' 91 ], 92 [ 93 'ID' => 9, 94 'company_shortname' => 'SURATMP', 95 'company_name' => 'Sürat Kargo Marketplace', 96 'tax_number' => '7870233582' 97 ], 98 [ 99 'ID' => 17, 100 'company_shortname' => 'TEXMP', 101 'company_name' => 'Trendyol Express Marketplace', 102 'tax_number' => '8590921777' 103 ], 104 [ 105 'ID' => 6, 106 'company_shortname' => 'HOROZMP', 107 'company_name' => 'Horoz Kargo Marketplace', 108 'tax_number' => '4630097122' 109 ], 110 [ 111 'ID' => 20, 112 'company_shortname' => 'CEVAMP', 113 'company_name' => 'CEVA Marketplace', 114 'tax_number' => '8450298557' 115 ], 116 [ 117 'ID' => 4, 118 'company_shortname' => 'YKMP', 119 'company_name' => 'Yurtiçi Kargo Marketplace', 120 'tax_number' => '3130557669' 121 ], 122 [ 123 'ID' => 7, 124 'company_shortname' => 'ARASMP', 125 'company_name' => 'Aras Kargo Marketplace', 126 'tax_number' => '720039666' 127 ] 128 ]; 129 130 return $data; 131 } 132 133 } -
wc-trendyol/trunk/vendor/hasokeyk/trendyol/src/Trendyol/TrendyolRequest.php
r3144229 r3152168 18 18 $this->username = $trendyol->username; 19 19 $this->password = $trendyol->password; 20 $this->cache_path = (__DIR__).'/cache';21 20 22 21 if($trendyol->test){ … … 148 147 } 149 148 150 public function cache($cache_name, $content = false, $json = false, $rewrite = false){151 152 if($cache_name != null){153 154 $cache_file_path = $this->cache_path.'/';155 $cache_file = $cache_file_path.($cache_name.'.json');156 157 if($rewrite === true){158 goto rewrite;159 }160 161 if(file_exists($cache_file) and time() <= strtotime('+'.$this->cache_time.' minute', filemtime($cache_file))){162 $content = file_get_contents($cache_file);163 return json_decode($content);164 }165 else if($content !== false){166 rewrite:167 if($json){168 file_put_contents($cache_file, $content);169 }170 else{171 file_put_contents($cache_file, json_encode($content));172 }173 return $content;174 }175 176 }177 return false;178 179 }180 181 149 } -
wc-trendyol/trunk/vendor/hasokeyk/trendyol/vendor/autoload.php
r3070215 r3152168 23 23 require_once __DIR__ . '/composer/autoload_real.php'; 24 24 25 return ComposerAutoloaderInit 287a1f77ef9d63f9db298495b8884684::getLoader();25 return ComposerAutoloaderInitbe1639c79c7c0ebc1325308ddc67adee::getLoader(); -
wc-trendyol/trunk/vendor/hasokeyk/trendyol/vendor/composer/autoload_psr4.php
r3070215 r3152168 7 7 8 8 return array( 9 'Hasokeyk\\Trendyol\\' => array($baseDir . '/src/ trendyol'),9 'Hasokeyk\\Trendyol\\' => array($baseDir . '/src/Trendyol'), 10 10 ); -
wc-trendyol/trunk/vendor/hasokeyk/trendyol/vendor/composer/autoload_real.php
r2833296 r3152168 3 3 // autoload_real.php @generated by Composer 4 4 5 class ComposerAutoloaderInit 287a1f77ef9d63f9db298495b88846845 class ComposerAutoloaderInitbe1639c79c7c0ebc1325308ddc67adee 6 6 { 7 7 private static $loader; … … 23 23 } 24 24 25 spl_autoload_register(array('ComposerAutoloaderInit 287a1f77ef9d63f9db298495b8884684', 'loadClassLoader'), true, true);25 spl_autoload_register(array('ComposerAutoloaderInitbe1639c79c7c0ebc1325308ddc67adee', 'loadClassLoader'), true, true); 26 26 self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); 27 spl_autoload_unregister(array('ComposerAutoloaderInit 287a1f77ef9d63f9db298495b8884684', 'loadClassLoader'));27 spl_autoload_unregister(array('ComposerAutoloaderInitbe1639c79c7c0ebc1325308ddc67adee', 'loadClassLoader')); 28 28 29 29 require __DIR__ . '/autoload_static.php'; 30 call_user_func(\Composer\Autoload\ComposerStaticInit 287a1f77ef9d63f9db298495b8884684::getInitializer($loader));30 call_user_func(\Composer\Autoload\ComposerStaticInitbe1639c79c7c0ebc1325308ddc67adee::getInitializer($loader)); 31 31 32 32 $loader->register(true); -
wc-trendyol/trunk/vendor/hasokeyk/trendyol/vendor/composer/autoload_static.php
r2833296 r3152168 5 5 namespace Composer\Autoload; 6 6 7 class ComposerStaticInit 287a1f77ef9d63f9db298495b88846847 class ComposerStaticInitbe1639c79c7c0ebc1325308ddc67adee 8 8 { 9 9 public static $prefixLengthsPsr4 = array ( … … 17 17 'Hasokeyk\\Trendyol\\' => 18 18 array ( 19 0 => __DIR__ . '/../..' . '/src/ trendyol',19 0 => __DIR__ . '/../..' . '/src/Trendyol', 20 20 ), 21 21 ); … … 28 28 { 29 29 return \Closure::bind(function () use ($loader) { 30 $loader->prefixLengthsPsr4 = ComposerStaticInit 287a1f77ef9d63f9db298495b8884684::$prefixLengthsPsr4;31 $loader->prefixDirsPsr4 = ComposerStaticInit 287a1f77ef9d63f9db298495b8884684::$prefixDirsPsr4;32 $loader->classMap = ComposerStaticInit 287a1f77ef9d63f9db298495b8884684::$classMap;30 $loader->prefixLengthsPsr4 = ComposerStaticInitbe1639c79c7c0ebc1325308ddc67adee::$prefixLengthsPsr4; 31 $loader->prefixDirsPsr4 = ComposerStaticInitbe1639c79c7c0ebc1325308ddc67adee::$prefixDirsPsr4; 32 $loader->classMap = ComposerStaticInitbe1639c79c7c0ebc1325308ddc67adee::$classMap; 33 33 34 34 }, null, ClassLoader::class); -
wc-trendyol/trunk/vendor/hasokeyk/trendyol/vendor/composer/installed.php
r3070215 r3152168 2 2 'root' => array( 3 3 'name' => 'hasokeyk/trendyol', 4 'pretty_version' => ' dev-main',5 'version' => ' dev-main',6 'reference' => '5bf5aaefc50be1155662a6bbc911e8c6e8522572',4 'pretty_version' => '1.0.0+no-version-set', 5 'version' => '1.0.0.0', 6 'reference' => null, 7 7 'type' => 'library', 8 8 'install_path' => __DIR__ . '/../../', … … 12 12 'versions' => array( 13 13 'hasokeyk/trendyol' => array( 14 'pretty_version' => ' dev-main',15 'version' => ' dev-main',16 'reference' => '5bf5aaefc50be1155662a6bbc911e8c6e8522572',14 'pretty_version' => '1.0.0+no-version-set', 15 'version' => '1.0.0.0', 16 'reference' => null, 17 17 'type' => 'library', 18 18 'install_path' => __DIR__ . '/../../', -
wc-trendyol/trunk/wc-trendyol.php
r3144213 r3152168 17 17 * Plugin URI: https://https://hayatikodla.net 18 18 * Description: Woocoommerce için trendyol eklentisi 19 * Version: 3.1. 219 * Version: 3.1.3 20 20 * Requires at least: 6.5 21 21 * Requires PHP: 7.4 … … 39 39 * Rename this for your plugin and update it as you release new versions. 40 40 */ 41 define('WC_TRENDYOL_VERSION', '3.1. 2');41 define('WC_TRENDYOL_VERSION', '3.1.3'); 42 42 if(!defined('WC_TRENDYOL_DIR_PATH')){ 43 43 define('WC_TRENDYOL_DIR_PATH', __DIR__); … … 93 93 } 94 94 95 run_wc_trendyol(); 95 add_action('plugins_loaded', function(){ 96 97 if(!function_exists('is_plugin_active')){ 98 include_once ABSPATH . 'wp-admin/includes/plugin.php'; 99 } 100 101 $woocommerce_plugin = 'woocommerce/woocommerce.php'; 102 $woocommerce_plugin_path = ABSPATH.'wp-content/plugins/'.$woocommerce_plugin; 103 if(is_plugin_active($woocommerce_plugin) and file_exists($woocommerce_plugin_path)){ 104 run_wc_trendyol(); 105 } 106 }, 18);
Note: See TracChangeset
for help on using the changeset viewer.