Changeset 3401475
- Timestamp:
- 11/24/2025 12:20:21 AM (4 months ago)
- Location:
- eafatura-e-arsiv-entegrasyon
- Files:
-
- 106 added
- 9 edited
-
tags/2.1.5 (added)
-
tags/2.1.5/assets (added)
-
tags/2.1.5/assets/admin (added)
-
tags/2.1.5/assets/admin/css (added)
-
tags/2.1.5/assets/admin/css/admin-manual-page-min.css (added)
-
tags/2.1.5/assets/admin/css/admin-min.css (added)
-
tags/2.1.5/assets/admin/css/admin-settings-min.css (added)
-
tags/2.1.5/assets/admin/css/log-tracker-min.css (added)
-
tags/2.1.5/assets/admin/css/onboarding-min.css (added)
-
tags/2.1.5/assets/admin/css/product-management-min.css (added)
-
tags/2.1.5/assets/admin/css/shipping-label-min.css (added)
-
tags/2.1.5/assets/admin/css/shipping-settings-min.css (added)
-
tags/2.1.5/assets/admin/css/source (added)
-
tags/2.1.5/assets/admin/css/source/admin-manual-page.css (added)
-
tags/2.1.5/assets/admin/css/source/admin-settings.css (added)
-
tags/2.1.5/assets/admin/css/source/admin.css (added)
-
tags/2.1.5/assets/admin/css/source/log-tracker.css (added)
-
tags/2.1.5/assets/admin/css/source/onboarding.css (added)
-
tags/2.1.5/assets/admin/css/source/product-management.css (added)
-
tags/2.1.5/assets/admin/css/source/shipping-label.css (added)
-
tags/2.1.5/assets/admin/css/source/shipping-settings.css (added)
-
tags/2.1.5/assets/admin/images (added)
-
tags/2.1.5/assets/admin/images/ea1x_logo.png (added)
-
tags/2.1.5/assets/admin/images/mb_logo_icon.svg (added)
-
tags/2.1.5/assets/admin/images/shipping (added)
-
tags/2.1.5/assets/admin/images/shipping/aras.png (added)
-
tags/2.1.5/assets/admin/images/shipping/dhl.png (added)
-
tags/2.1.5/assets/admin/images/shipping/yurtici.png (added)
-
tags/2.1.5/assets/admin/js (added)
-
tags/2.1.5/assets/admin/js/admin-manual-page-min.js (added)
-
tags/2.1.5/assets/admin/js/admin-min.js (added)
-
tags/2.1.5/assets/admin/js/admin-settings-min.js (added)
-
tags/2.1.5/assets/admin/js/log-tracker-min.js (added)
-
tags/2.1.5/assets/admin/js/onboarding-min.js (added)
-
tags/2.1.5/assets/admin/js/order-list-min.js (added)
-
tags/2.1.5/assets/admin/js/orders-actions-min.js (added)
-
tags/2.1.5/assets/admin/js/product-management-min.js (added)
-
tags/2.1.5/assets/admin/js/shipping-label-min.js (added)
-
tags/2.1.5/assets/admin/js/shipping-settings-min.js (added)
-
tags/2.1.5/assets/admin/js/source (added)
-
tags/2.1.5/assets/admin/js/source/admin-manual-page.js (added)
-
tags/2.1.5/assets/admin/js/source/admin-settings.js (added)
-
tags/2.1.5/assets/admin/js/source/admin.js (added)
-
tags/2.1.5/assets/admin/js/source/log-tracker.js (added)
-
tags/2.1.5/assets/admin/js/source/onboarding.js (added)
-
tags/2.1.5/assets/admin/js/source/order-list.js (added)
-
tags/2.1.5/assets/admin/js/source/orders-actions.js (added)
-
tags/2.1.5/assets/admin/js/source/product-management.js (added)
-
tags/2.1.5/assets/admin/js/source/shipping-label.js (added)
-
tags/2.1.5/assets/admin/js/source/shipping-settings.js (added)
-
tags/2.1.5/assets/admin/vendor (added)
-
tags/2.1.5/assets/admin/vendor/js (added)
-
tags/2.1.5/assets/admin/vendor/js/jsBarcode.js (added)
-
tags/2.1.5/assets/frontend (added)
-
tags/2.1.5/assets/frontend/css (added)
-
tags/2.1.5/assets/frontend/css/tracking.css (added)
-
tags/2.1.5/assets/frontend/js (added)
-
tags/2.1.5/assets/frontend/js/tracking.js (added)
-
tags/2.1.5/eafatura-e-arsiv-entegrasyon.php (added)
-
tags/2.1.5/includes (added)
-
tags/2.1.5/includes/Admin (added)
-
tags/2.1.5/includes/Admin/Assets.php (added)
-
tags/2.1.5/includes/Admin/BulkActions.php (added)
-
tags/2.1.5/includes/Admin/Menu.php (added)
-
tags/2.1.5/includes/Admin/Onboarding.php (added)
-
tags/2.1.5/includes/Admin/OrdersList.php (added)
-
tags/2.1.5/includes/App.php (added)
-
tags/2.1.5/includes/Frontend (added)
-
tags/2.1.5/includes/Frontend/TrackingShortcode.php (added)
-
tags/2.1.5/includes/Logging (added)
-
tags/2.1.5/includes/Logging/Logger.php (added)
-
tags/2.1.5/includes/Orders (added)
-
tags/2.1.5/includes/Orders/Bulk.php (added)
-
tags/2.1.5/includes/Repository (added)
-
tags/2.1.5/includes/Repository/Options.php (added)
-
tags/2.1.5/includes/Rest (added)
-
tags/2.1.5/includes/Rest/Ajax.php (added)
-
tags/2.1.5/includes/Services (added)
-
tags/2.1.5/includes/Services/EafaturaApi.php (added)
-
tags/2.1.5/includes/Services/Http.php (added)
-
tags/2.1.5/includes/Woo (added)
-
tags/2.1.5/includes/Woo/Email (added)
-
tags/2.1.5/includes/Woo/Email/ShippingSent.php (added)
-
tags/2.1.5/includes/Woo/ShippingStatus.php (added)
-
tags/2.1.5/includes/helpers.php (added)
-
tags/2.1.5/readme.txt (added)
-
tags/2.1.5/templates (added)
-
tags/2.1.5/templates/admin-settings.php (added)
-
tags/2.1.5/templates/emails (added)
-
tags/2.1.5/templates/emails/customer-shipped-order.php (added)
-
tags/2.1.5/templates/emails/plain (added)
-
tags/2.1.5/templates/emails/plain/customer-shipped-order.php (added)
-
tags/2.1.5/templates/log-tracker.php (added)
-
tags/2.1.5/templates/manual-processes.php (added)
-
tags/2.1.5/templates/product-management.php (added)
-
tags/2.1.5/templates/shipping-label-page.php (added)
-
tags/2.1.5/templates/shipping-settings.php (added)
-
tags/2.1.5/uninstall.php (added)
-
trunk/assets/admin/css/admin-min.css (modified) (1 diff)
-
trunk/assets/admin/js/shipping-settings-min.js (modified) (1 diff)
-
trunk/eafatura-e-arsiv-entegrasyon.php (modified) (6 diffs)
-
trunk/includes/Admin/Assets.php (modified) (2 diffs)
-
trunk/includes/Services/EafaturaApi.php (modified) (4 diffs)
-
trunk/includes/Woo (added)
-
trunk/includes/Woo/Email (added)
-
trunk/includes/Woo/Email/ShippingSent.php (added)
-
trunk/includes/Woo/ShippingStatus.php (added)
-
trunk/includes/helpers.php (modified) (1 diff)
-
trunk/readme.txt (modified) (3 diffs)
-
trunk/templates/emails (added)
-
trunk/templates/emails/customer-shipped-order.php (added)
-
trunk/templates/emails/plain (added)
-
trunk/templates/emails/plain/customer-shipped-order.php (added)
-
trunk/templates/shipping-settings.php (modified) (10 diffs)
-
trunk/uninstall.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
eafatura-e-arsiv-entegrasyon/trunk/assets/admin/css/admin-min.css
r3401085 r3401475 1 .ea-field,.ea-kicker,.ea-switch label,.ea-title{text-align:center}.eaee-label,.eaee-spinner,.eaee-view .eaee-ico{vertical-align:middle}.ea-wrap{max-width:960px}.ea-card{background:#fff;border:1px solid #e6e7ea;border-radius:12px;box-shadow:0 6px 20px rgba(0,0,0,.05);padding:24px;margin-top:12px;transition:none!important}.ea-title{font-size:22px;font-weight:700;margin:0 0 8px;color:#1d2327}.ea-kicker{font-size:14px;color:#5e6670;margin:0 0 18px}.ea-logo-wrap{display:flex;justify-content:center;margin:20px 0}.ea-logo-big{max-height:96px;width:auto}.ea-actions{display:flex;gap:12px;align-items:center;margin-top:16px;justify-content:center}.eafatura-icon{font-size:16px;line-height:1}.eafatura-icon.success{opacity:1}.eafatura-icon.disabled{opacity:.45}.ea-copy,.ea-eye{display:inline-flex;align-items:center;gap:6px}.ea-field{margin-bottom:14px}.ea-input{max-width:520px;width:100%;border-radius:10px;border:1px solid #d9dadd;padding:10px 12px;box-shadow:inset 0 1px 0 rgba(0,0,0,.02);transition:border-color .15s,box-shadow .15s}#evet:checked+label,#hayir:checked+label,.ea-btn-primary{background:#1d72e8;border-color:#1d72e8;box-shadow:0 6px 18px rgba(29,114,232,.2)}.ea-input:focus{outline:0;border-color:#2271b1;box-shadow:0 0 0 2px rgba(34,113,177,.15),inset 0 1px 0 rgba(0,0,0,.02)}.ea-input-row{display:flex;gap:8px;align-items:center;justify-content:center}.ea-help{margin-top:6px;color:#646970}.ea-switch{display:inline-grid;grid-template-columns:1fr 1fr;gap:8px;max-width:220px}.ea-switch input[type=radio]{position:absolute;opacity:0;pointer-events:none}.ea-switch label{padding:10px 12px;border:1px solid #d9dadd;border-radius:999px;cursor:pointer;transition:.18s;background:#fafafa}#evet:checked+label,#hayir:checked+label{color:#fff}.ea-btn{border-radius:10px;padding:10px 16px;line-height:1.2}.ea-btn-primary{color:#fff}.ea-btn-primary:hover{background:#1763cc;border-color:#1763cc;color:#fff}.ea-btn-ghost{background:#fff;border:1px solid #d1d5db;color:#111827}.ea-btn-ghost:hover{background:#f3f4f6;border-color:#c7cbd1}.ea-alert{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:10px;margin-top:10px;border:1px solid}.ea-alert-warn,.ea-inline-notice.is-warn{background:linear-gradient(180deg,#fff8e5 0,#fff3cf 100%);border-color:#f1d48a;color:#6d5a2c}.ea-inline-notice{display:flex;align-items:flex-start;gap:10px;margin-top:12px;border:1px solid;border-radius:10px;padding:10px 12px}.ea-inline-notice .ea-inline-icon{font-size:18px;line-height:1.2}.ea-inline-notice .ea-inline-body{flex:1}.ea-inline-notice .ea-inline-text{margin-top:2px;opacity:.9}.ea-inline-notice .ea-inline-close{border:none;background:0 0;font-size:20px;line-height:1;cursor:pointer;color:#334155}.ea-inline-notice.is-success{background:linear-gradient(180deg,#ecfdf5 0,#e6f8f0 100%);border-color:#a7f3d0;color:#065f46}.ea-toast{position:fixed;bottom:24px;right:24px;background:#1d2327;color:#fff;border-radius:8px;padding:10px 14px;box-shadow:0 12px 30px rgba(0,0,0,.18);opacity:0;transform:translateY(8px);transition:transform .18s,opacity .18s;z-index:100000}.ea-toast.is-show{opacity:1;transform:translateY(0)}.ea-hero{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(180deg,#e8f1ff 0,#f3f7fd 100%);border:1px solid #d0e2ff}.ea-hero__title{margin:0 0 4px;font-size:15px;font-weight:600;display:flex;align-items:center;gap:8px;color:#1d2327}.ea-hero__desc{margin:0;color:#5e6670}.ea-badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;padding:6px 10px;border-radius:999px;background:#eef6ff;color:#1b4b91;border:1px solid #cfe3ff}.ea-settings-card{padding:0;overflow:hidden}.ea-settings-head{padding:16px 20px;border-bottom:1px solid #e6e7ea;background:#f8fafc}.ea-settings-brand{display:flex;align-items:center;gap:14px}.ea-settings-brand .ea-logo-big{max-height:56px;width:auto}.ea-settings-head .ea-title{margin:0;font-size:20px;color:#0f172a}.ea-settings-head .ea-kicker{margin:2px 0 0;font-size:13px;color:#64748b}.ea-settings-body{padding:20px}.eaee-pill{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;border-radius:999px;border:1px solid #dcdcdc;background:#fff;text-decoration:none}.eaee-action.button,.eaee-view{align-items:center;justify-content:center;gap:6px;min-width:0;padding:6px 10px;border-radius:8px;display:inline-flex;white-space:nowrap;max-width:100%;box-sizing:border-box}.eaee-pill--ok{background:#eaffef;border-color:#b5e3c1}.eaee-action.button{justify-content:center;gap:8px;transition:background-color .2s,color .2s,transform .15s,border-color .2s;cursor:pointer}.eaee-action.button.eaee-is-loading{background:#6b7280!important;color:#fff!important;border-color:#6b7280!important;pointer-events:none;opacity:.95}.eaee-action.button.eaee-is-success{background:#16a34a!important;color:#fff!important;border-color:#15803d!important}.eaee-action.button.eaee-is-error{background:#dc2626!important;color:#fff!important;border-color:#b91c1c!important}.eaee-view{justify-content:center;gap:6px;text-decoration:none;background:#1d72e8;border:1px solid #1d72e8;color:#fff;box-shadow:0 6px 18px rgba(29,113,232,.18)}.eaee-view.is-outline{background:#fff;color:#1d72e8;border-color:#cfe3ff}.eaee-view.is-outline:hover{background:#eff6ff;color:#174ea6}.eaee-view .eaee-ico{display:inline-block;line-height:1;font-size:14px}.eaee-view .eaee-label{line-height:1;vertical-align:middle}.eaee-spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.55);border-top-color:#fff;border-radius:50%;display:inline-block;animation:.8s linear infinite eaee-rot;margin-right:8px}.eaee-pop{animation:.35s eaee-pop}@keyframes eaee-pop{0%{transform:scale(.98)}50%{transform:scale(1.04)}100%{transform:scale(1)}}@keyframes eaee-rot{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.ea-card,.ea-input,.ea-switch label,.ea-toast,.eaee-action.button{transition:none!important}}@media (prefers-color-scheme:dark){.ea-hero{background:linear-gradient(180deg,#0f1720 0,#0b1220 100%);border-color:#1f2b3a}.ea-badge{background:#0e2a55;color:#d6e6ff;border-color:#214b88}.ea-title{color:#e5e7eb}}.button.button-small.eaee-view{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:4px 10px;border-radius:6px;border:1px solid #c3c4c7;background:#fff;color:#1d2327;line-height:1.2;text-decoration:none;white-space:nowrap;max-width:100%;box-sizing:border-box}.button.button-small.eaee-view:hover{background:#f0f0f1;border-color:#8c8f94;color:#1d2327}.button.button-small.eaee-view .dashicons{font-size:16px;width:16px;height:16px;line-height:16px}.button.button-small.eaee-view .eaee-label{display:inline-block;line-height:16px}.button.button-small.eaee-view:focus{outline:0;border-color:#2271b1;box-shadow:0 0 0 2px rgba(34,113,177,.25)}.eaee-view.is-wait{background:#f3f4f6;border:1px solid #d1d5db;color:#374151;cursor:not-allowed}.eaee-view.is-wait .dashicons{color:#9ca3af}.eaee-action.is-waiting[disabled],.eaee-view.is-waiting[disabled]{opacity:1!important;cursor:default!important;background:#fff!important;color:#1d2327!important;border-color:#dcdcdc!important}.column-eaee_barcode .button.button-small,.column-eaee_invoice .button.button-small{display:inline-flex;justify-content:center;width:100%;box-sizing:border-box;margin-bottom:2px} 1 .ea-field,.ea-kicker,.ea-switch label,.ea-title{text-align:center}.eaee-label,.eaee-spinner,.eaee-view .eaee-ico{vertical-align:middle}.ea-wrap{max-width:960px}.ea-card{background:#fff;border:1px solid #e6e7ea;border-radius:12px;box-shadow:0 6px 20px rgba(0,0,0,.05);padding:24px;margin-top:12px;transition:none!important}.ea-title{font-size:22px;font-weight:700;margin:0 0 8px;color:#1d2327}.ea-kicker{font-size:14px;color:#5e6670;margin:0 0 18px}.ea-logo-wrap{display:flex;justify-content:center;margin:20px 0}.ea-logo-big{max-height:96px;width:auto}.ea-actions{display:flex;gap:12px;align-items:center;margin-top:16px;justify-content:center}.eafatura-icon{font-size:16px;line-height:1}.eafatura-icon.success{opacity:1}.eafatura-icon.disabled{opacity:.45}.ea-copy,.ea-eye{display:inline-flex;align-items:center;gap:6px}.ea-field{margin-bottom:14px}.ea-input{max-width:520px;width:100%;border-radius:10px;border:1px solid #d9dadd;padding:10px 12px;box-shadow:inset 0 1px 0 rgba(0,0,0,.02);transition:border-color .15s,box-shadow .15s}#evet:checked+label,#hayir:checked+label,.ea-btn-primary{background:#1d72e8;border-color:#1d72e8;box-shadow:0 6px 18px rgba(29,114,232,.2)}.ea-input:focus{outline:0;border-color:#2271b1;box-shadow:0 0 0 2px rgba(34,113,177,.15),inset 0 1px 0 rgba(0,0,0,.02)}.ea-input-row{display:flex;gap:8px;align-items:center;justify-content:center}.ea-help{margin-top:6px;color:#646970}.ea-switch{display:inline-grid;grid-template-columns:1fr 1fr;gap:8px;max-width:220px}.ea-switch input[type=radio]{position:absolute;opacity:0;pointer-events:none}.ea-switch label{padding:10px 12px;border:1px solid #d9dadd;border-radius:999px;cursor:pointer;transition:.18s;background:#fafafa}#evet:checked+label,#hayir:checked+label{color:#fff}.ea-btn{border-radius:10px;padding:10px 16px;line-height:1.2}.ea-btn-primary{color:#fff}.ea-btn-primary:hover{background:#1763cc;border-color:#1763cc;color:#fff}.ea-btn-ghost{background:#fff;border:1px solid #d1d5db;color:#111827}.ea-btn-ghost:hover{background:#f3f4f6;border-color:#c7cbd1}.ea-alert{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:10px;margin-top:10px;border:1px solid}.ea-alert-warn,.ea-inline-notice.is-warn{background:linear-gradient(180deg,#fff8e5 0,#fff3cf 100%);border-color:#f1d48a;color:#6d5a2c}.ea-inline-notice{display:flex;align-items:flex-start;gap:10px;margin-top:12px;border:1px solid;border-radius:10px;padding:10px 12px}.ea-inline-notice .ea-inline-icon{font-size:18px;line-height:1.2}.ea-inline-notice .ea-inline-body{flex:1}.ea-inline-notice .ea-inline-text{margin-top:2px;opacity:.9}.ea-inline-notice .ea-inline-close{border:none;background:0 0;font-size:20px;line-height:1;cursor:pointer;color:#334155}.ea-inline-notice.is-success{background:linear-gradient(180deg,#ecfdf5 0,#e6f8f0 100%);border-color:#a7f3d0;color:#065f46}.ea-toast{position:fixed;bottom:24px;right:24px;background:#1d2327;color:#fff;border-radius:8px;padding:10px 14px;box-shadow:0 12px 30px rgba(0,0,0,.18);opacity:0;transform:translateY(8px);transition:transform .18s,opacity .18s;z-index:100000}.ea-toast.is-show{opacity:1;transform:translateY(0)}.ea-hero{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(180deg,#e8f1ff 0,#f3f7fd 100%);border:1px solid #d0e2ff}.ea-hero__title{margin:0 0 4px;font-size:15px;font-weight:600;display:flex;align-items:center;gap:8px;color:#1d2327}.ea-hero__desc{margin:0;color:#5e6670}.ea-badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;padding:6px 10px;border-radius:999px;background:#eef6ff;color:#1b4b91;border:1px solid #cfe3ff}.ea-settings-card{padding:0;overflow:hidden}.ea-settings-head{padding:16px 20px;border-bottom:1px solid #e6e7ea;background:#f8fafc}.ea-settings-brand{display:flex;align-items:center;gap:14px}.ea-settings-brand .ea-logo-big{max-height:56px;width:auto}.ea-settings-head .ea-title{margin:0;font-size:20px;color:#0f172a}.ea-settings-head .ea-kicker{margin:2px 0 0;font-size:13px;color:#64748b}.ea-settings-body{padding:20px}.eaee-pill{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;border-radius:999px;border:1px solid #dcdcdc;background:#fff;text-decoration:none}.eaee-action.button,.eaee-view{align-items:center;justify-content:center;gap:6px;min-width:0;padding:6px 10px;border-radius:8px;display:inline-flex;white-space:nowrap;max-width:100%;box-sizing:border-box}.eaee-pill--ok{background:#eaffef;border-color:#b5e3c1}.eaee-action.button{justify-content:center;gap:8px;transition:background-color .2s,color .2s,transform .15s,border-color .2s;cursor:pointer}.eaee-action.button.eaee-is-loading{background:#6b7280!important;color:#fff!important;border-color:#6b7280!important;pointer-events:none;opacity:.95}.eaee-action.button.eaee-is-success{background:#16a34a!important;color:#fff!important;border-color:#15803d!important}.eaee-action.button.eaee-is-error{background:#dc2626!important;color:#fff!important;border-color:#b91c1c!important}.eaee-view{justify-content:center;gap:6px;text-decoration:none;background:#1d72e8;border:1px solid #1d72e8;color:#fff;box-shadow:0 6px 18px rgba(29,113,232,.18)}.eaee-view.is-outline{background:#fff;color:#1d72e8;border-color:#cfe3ff}.eaee-view.is-outline:hover{background:#eff6ff;color:#174ea6}.eaee-view .eaee-ico{display:inline-block;line-height:1;font-size:14px}.eaee-view .eaee-label{line-height:1;vertical-align:middle}.eaee-spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.55);border-top-color:#fff;border-radius:50%;display:inline-block;animation:.8s linear infinite eaee-rot;margin-right:8px}.eaee-pop{animation:.35s eaee-pop}@keyframes eaee-pop{0%{transform:scale(.98)}50%{transform:scale(1.04)}100%{transform:scale(1)}}@keyframes eaee-rot{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.ea-card,.ea-input,.ea-switch label,.ea-toast,.eaee-action.button{transition:none!important}}@media (prefers-color-scheme:dark){.ea-hero{background:linear-gradient(180deg,#0f1720 0,#0b1220 100%);border-color:#1f2b3a}.ea-badge{background:#0e2a55;color:#d6e6ff;border-color:#214b88}.ea-title{color:#e5e7eb}}.button.button-small.eaee-view{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:4px 10px;border-radius:6px;border:1px solid #c3c4c7;background:#fff;color:#1d2327;line-height:1.2;text-decoration:none;white-space:nowrap;max-width:100%;box-sizing:border-box}.button.button-small.eaee-view:hover{background:#f0f0f1;border-color:#8c8f94;color:#1d2327}.button.button-small.eaee-view .dashicons{font-size:16px;width:16px;height:16px;line-height:16px}.button.button-small.eaee-view .eaee-label{display:inline-block;line-height:16px}.button.button-small.eaee-view:focus{outline:0;border-color:#2271b1;box-shadow:0 0 0 2px rgba(34,113,177,.25)}.eaee-view.is-wait{background:#f3f4f6;border:1px solid #d1d5db;color:#374151;cursor:not-allowed}.eaee-view.is-wait .dashicons{color:#9ca3af}.eaee-action.is-waiting[disabled],.eaee-view.is-waiting[disabled]{opacity:1!important;cursor:default!important;background:#fff!important;color:#1d2327!important;border-color:#dcdcdc!important}.column-eaee_barcode .button.button-small,.column-eaee_invoice .button.button-small{display:inline-flex;justify-content:center;width:100%;box-sizing:border-box;margin-bottom:2px}.column-order_status .status-ea-shipped,.order-status.status-ea-shipped,.woocommerce-orders-table__cell-order-status .woocommerce-orders-table__status-ea-shipped{background:#7b58da!important;color:#fff!important;border-radius:3px!important;padding:3px 8px!important;font-size:12px!important;line-height:1.4!important;text-transform:uppercase!important;font-weight:400!important}.column-order_status .status-ea-shipped,.order-status.status-ea-shipped{display:inline-block!important}.column-wc_actions .view::after[title="Kargoya Verildi"]{color:#7b58da!important} -
eafatura-e-arsiv-entegrasyon/trunk/assets/admin/js/shipping-settings-min.js
r3370644 r3401475 1 jQuery(document).ready(function(e){var t;let a=e(".eaee-nav-item"),i=e("#eaee_shipping_company"),n=e(".eaee-save-shipping-settings"),o=e(".eaee-clear-settings-btn"),s=e("#eaee-save-default-shipping"),d=e("#eaee-dynamic-notice-area");function r(t){a.removeClass("is-active"),e(".eaee-conditional-group").addClass("is-hidden");let n=e(`.eaee-nav-item[data-target="${t}"]`),o=e(`#eaee-${t}-options`);n.addClass("is-active"),o.removeClass("is-hidden"),i.val(t)}s.on("click",function(){let t=e(this),a=e("#eaee_default_shipping_integration").val(),i=t.find(".button-text"),n=i.text();t.prop("disabled",!0).find(".dashicons").addClass("is-loading"),i.text("Kaydediliyor..."),d.empty(),e.post(eaee_shipping_vars.ajax_url,{action:"eaee_save_default_shipping",nonce:eaee_shipping_vars.nonce,default_integration:a}).done(function(e){e.success?d.html('<div class="notice notice-success is-dismissible"><p>'+e.data.message+"</p></div>"):d.html('<div class="notice notice-error is-dismissible"><p>'+e.data.message+"</p></div>")}).fail(function(){d.html('<div class="notice notice-error is-dismissible"><p>Sunucu hatası oluştu.</p></div>')}).always(function(){t.prop("disabled",!1).find(".dashicons").removeClass("is-loading"),i.text(n)})}),a.on("click",function(){r(e(this).data("target"))}),0===e(".eaee-nav-item.is-active").length&&e(".eaee-nav-item").first().addClass("is-active"),r(e(".eaee-nav-item.is-active").data("target")),n.on("click",function(){let t=e(this),a=t.closest("form"),i=a.data("integration-type"),n=!0;if(a.find("[required]").each(function(){e(this).val().trim()?e(this).css("border-color",""):(n=!1,e(this).css("border-color","red"))}),!n){alert("L\xfctfen t\xfcm zorunlu alanları doldurun.");return}let o=t.find(".button-text"),s=o.text();t.prop("disabled",!0).find(".dashicons").removeClass("dashicons-saved").addClass("dashicons-update-alt is-loading"),o.text("Kaydediliyor...");let d={action:"eaee_save_shipping_settings",nonce:eaee_shipping_vars.nonce,integration_type:i,data:a.serialize()};e.post(eaee_shipping_vars.ajax_url,d).done(function(e){e.success?(alert("Ayarlar başarıyla kaydedildi! Sayfa yenileniyor..."),window.location.reload()):(alert("Hata: "+e.data.message),t.prop("disabled",!1).find(".dashicons").addClass("dashicons-saved").removeClass("dashicons-update-alt is-loading"),o.text(s))}).fail(function(){alert("Sunucu hatası. L\xfctfen tekrar deneyin."),t.prop("disabled",!1).find(".dashicons").addClass("dashicons-saved").removeClass("dashicons-update-alt is-loading"),o.text(s)})}),o.on("click",function(){if(!confirm("Kaydedilmiş ayarları silmek istediğinizden emin misiniz?"))return;let t=e(this),a=t.closest("form, .eaee-conditional-group").data("integration-type");t.text("Siliniyor..."),e.post(eaee_shipping_vars.ajax_url,{action:"eaee_clear_shipping_settings",nonce:eaee_shipping_vars.nonce,integration_type:a}).done(function(e){e.success?window.location.reload():(alert("Hata: "+e.data.message),t.text("Değiştir / Temizle"))}).fail(function(){alert("Sunucu hatası. L\xfctfen tekrar deneyin."),t.text("Değiştir / Temizle")})}),(t=e('.eaee-print-button[data-action="print"]')).length&&t.off("click.eaeePrint").on("click.eaeePrint",function(e){e.preventDefault(),function e(){var t=document.getElementById("eaee-shipping-label-content");if(t){var a=t.outerHTML,i=window.open("","_blank","noopener,noreferrer,width=520,height=860");if(!i){window.print();return}i.document.open(),i.document.write("<!doctype html><html><head><meta charset='utf-8'><title>Shipping Label</title><style>@page{size:100mm 150mm;margin:0}html,body{margin:0;padding:0;background:#fff}*,*::before,*::after{box-sizing:border-box}.eaee-label-wrap{border:0!important;outline:1px solid #000!important;width:99mm!important;min-height:149mm!important;padding:9.5mm!important;page-break-after:always!important;box-shadow:none!important;border-radius:0!important;transform:none!important;max-width:100%!important;max-height:150mm!important;overflow:visible!important}.eaee-grid{gap:6mm!important}</style></head><body>"+a+"</body></html>"),i.document.close(),i.onload=function(){try{i.focus()}catch(e){}try{i.print()}catch(t){}try{i.close()}catch(a){}}}}()}),function e(){var t=document.getElementById("eaee-shipping-label-content");if(t){var a=t.getAttribute("data-barcode")||"";a&&"undefined"!=typeof JsBarcode&&JsBarcode("#eaee-barcode",a,{format:"CODE128",displayValue:!1,width:2,height:62,margin:0,flat:!0})}}()});1 jQuery(document).ready(function(e){var a;let i=e(".eaee-nav-item"),t=e("#eaee_shipping_company"),n=e(".eaee-save-shipping-settings"),s=e(".eaee-clear-settings-btn"),o=e("#eaee-save-default-shipping"),d=e("#eaee-dynamic-notice-area");function l(a){i.removeClass("is-active"),e(".eaee-conditional-group").addClass("is-hidden");let n=e(`.eaee-nav-item[data-target="${a}"]`),s=e(`#eaee-${a}-options`);n.addClass("is-active"),s.removeClass("is-hidden"),t.val(a)}function r(){var a=e("#eaee_enable_shipped_status").is(":checked");e("#eaee_enable_shipped_email").prop("disabled",!a),e("#eaee_shipped_email_message").prop("disabled",!a),a||e("#eaee_enable_shipped_email").prop("checked",!1)}o.on("click",function(){let a=e(this),i=e("#eaee_default_shipping_integration").val(),t=a.find(".button-text"),n=t.text();a.prop("disabled",!0).find(".dashicons").addClass("is-loading"),t.text("Kaydediliyor..."),d.empty(),e.post(eaee_shipping_vars.ajax_url,{action:"eaee_save_default_shipping",nonce:eaee_shipping_vars.nonce,default_integration:i}).done(function(e){e.success?d.html('<div class="notice notice-success is-dismissible"><p>'+e.data.message+"</p></div>"):d.html('<div class="notice notice-error is-dismissible"><p>'+e.data.message+"</p></div>")}).fail(function(){d.html('<div class="notice notice-error is-dismissible"><p>Sunucu hatası oluştu.</p></div>')}).always(function(){a.prop("disabled",!1).find(".dashicons").removeClass("is-loading"),t.text(n)})}),i.on("click",function(){l(e(this).data("target"))}),0===e(".eaee-nav-item.is-active").length&&e(".eaee-nav-item").first().addClass("is-active"),l(e(".eaee-nav-item.is-active").data("target")),n.on("click",function(){let a=e(this),i=a.closest("form"),t=i.data("integration-type"),n=!0;if(i.find("[required]").each(function(){e(this).val().trim()?e(this).css("border-color",""):(n=!1,e(this).css("border-color","red"))}),!n){alert("L\xfctfen t\xfcm zorunlu alanları doldurun.");return}let s=a.find(".button-text"),o=s.text();a.prop("disabled",!0).find(".dashicons").removeClass("dashicons-saved").addClass("dashicons-update-alt is-loading"),s.text("Kaydediliyor...");let d={action:"eaee_save_shipping_settings",nonce:eaee_shipping_vars.nonce,integration_type:t,data:i.serialize()};e.post(eaee_shipping_vars.ajax_url,d).done(function(e){e.success?(alert("Ayarlar başarıyla kaydedildi! Sayfa yenileniyor..."),window.location.reload()):(alert("Hata: "+e.data.message),a.prop("disabled",!1).find(".dashicons").addClass("dashicons-saved").removeClass("dashicons-update-alt is-loading"),s.text(o))}).fail(function(){alert("Sunucu hatası. L\xfctfen tekrar deneyin."),a.prop("disabled",!1).find(".dashicons").addClass("dashicons-saved").removeClass("dashicons-update-alt is-loading"),s.text(o)})}),s.on("click",function(){if(!confirm("Kaydedilmiş ayarları silmek istediğinizden emin misiniz?"))return;let a=e(this),i=a.closest("form, .eaee-conditional-group").data("integration-type");a.text("Siliniyor..."),e.post(eaee_shipping_vars.ajax_url,{action:"eaee_clear_shipping_settings",nonce:eaee_shipping_vars.nonce,integration_type:i}).done(function(e){e.success?window.location.reload():(alert("Hata: "+e.data.message),a.text("Değiştir / Temizle"))}).fail(function(){alert("Sunucu hatası. L\xfctfen tekrar deneyin."),a.text("Değiştir / Temizle")})}),(a=e('.eaee-print-button[data-action="print"]')).length&&a.off("click.eaeePrint").on("click.eaeePrint",function(e){e.preventDefault(),function e(){var a=document.getElementById("eaee-shipping-label-content");if(a){var i=a.outerHTML,t=window.open("","_blank","noopener,noreferrer,width=520,height=860");if(!t){window.print();return}t.document.open(),t.document.write("<!doctype html><html><head><meta charset='utf-8'><title>Shipping Label</title><style>@page{size:100mm 150mm;margin:0}html,body{margin:0;padding:0;background:#fff}*,*::before,*::after{box-sizing:border-box}.eaee-label-wrap{border:0!important;outline:1px solid #000!important;width:99mm!important;min-height:149mm!important;padding:9.5mm!important;page-break-after:always!important;box-shadow:none!important;border-radius:0!important;transform:none!important;max-width:100%!important;max-height:150mm!important;overflow:visible!important}.eaee-grid{gap:6mm!important}</style></head><body>"+i+"</body></html>"),t.document.close(),t.onload=function(){try{t.focus()}catch(e){}try{t.print()}catch(a){}try{t.close()}catch(i){}}}}()}),function e(){var a=document.getElementById("eaee-shipping-label-content");if(a){var i=a.getAttribute("data-barcode")||"";i&&"undefined"!=typeof JsBarcode&&JsBarcode("#eaee-barcode",i,{format:"CODE128",displayValue:!1,width:2,height:62,margin:0,flat:!0})}}(),r(),e("#eaee_enable_shipped_status").on("change",r),e("#eaee-save-special-features").on("click",function(a){a.preventDefault();var i=e(this);i.prop("disabled",!0);var t=e("#eaee_enable_shipped_status").is(":checked")?1:0,n=e("#eaee_enable_shipped_email").is(":checked")?1:0,s=e("#eaee_shipped_email_message").val();e.post(eaee_shipping_vars.ajax_url,{action:"eaee_save_special_features",nonce:eaee_shipping_vars.nonce,eaee_enable_shipped_status:t,eaee_enable_shipped_email:n,eaee_shipped_email_message:s}).done(function(e){e&&e.success?alert("Ayarlar kaydedildi."):alert("Kaydederken bir hata oluştu.")}).fail(function(){alert("Sunucu hatası oluştu.")}).always(function(){i.prop("disabled",!1)})})}); -
eafatura-e-arsiv-entegrasyon/trunk/eafatura-e-arsiv-entegrasyon.php
r3401085 r3401475 5 5 * Plugin URI: https://www.eafatura.com/ 6 6 * Description: Eafatura.com müşterileri için WooCommerce e-Arşiv Fatura, TY E-Faturam ve Kargo Barkod entegrasyonu. 7 * Version: 2.1. 47 * Version: 2.1.5 8 8 * Author: Mersev Bilişim Yazılım Ltd. Şti. 9 9 * Author URI: https://www.mersev.com.tr/ … … 16 16 17 17 if (!defined('ABSPATH')) exit; 18 18 19 define('EAEE_FILE', __FILE__); 19 20 define('EAEE_PATH', plugin_dir_path(__FILE__)); 20 21 define('EAEE_URL', plugin_dir_url(__FILE__)); 21 define('EAEE_VER', '2.1.4'); 22 define('EAEE_VER', '2.1.5'); // Versiyonu güncelledim 23 22 24 require_once EAEE_PATH . 'includes/helpers.php'; 23 25 … … 39 41 */ 40 42 register_activation_hook(__FILE__, function () { 41 // Daha önce kuruluysa hiçbir şey yapma42 43 if (get_option('eaee_plugin_version')) { 43 44 return; 44 45 } 45 46 eaee_create_logs_table(); // helper'dan çağır 47 48 add_option('eaee_do_onboarding_redirect', 1); // sadece ilk kurulum 46 eaee_create_logs_table(); 47 add_option('eaee_do_onboarding_redirect', 1); 49 48 update_option('eaee_plugin_version', EAEE_VER); 50 49 }); … … 80 79 81 80 82 83 81 /** 84 82 * ------------------------------------------------------------ 85 * Admin sipariş listesi kolonları + bulk aksiyonlar (sınıf mevcutsa)83 * (Plugins Loader) 86 84 * ------------------------------------------------------------ 87 85 */ 88 86 add_action('plugins_loaded', function () { 89 87 88 // 1. Admin Menü 90 89 if (class_exists('\\EAEE\\Admin\\Menu')) { 91 90 \EAEE\Admin\Menu::init(); 92 91 } 93 92 94 // Sipariş listesi + bulk actions 93 // 2. Sipariş Durumu (ShippingStatus) 94 if (class_exists('\\EAEE\\Woo\\ShippingStatus') && get_option('eaee_enable_shipped_status', 0)) { 95 \EAEE\Woo\ShippingStatus::init(); 96 } 97 98 // --------------------------------------------------------- 99 // 3. E-Posta Sınıfı 100 // --------------------------------------------------------- 101 add_filter('woocommerce_email_classes', function ($emails) { 102 if (class_exists('\\EAEE\\Woo\\Email\\ShippingSent') && get_option('eaee_enable_shipped_email', 0)) { 103 $emails['wc_ea_shipped'] = new \EAEE\Woo\Email\ShippingSent(); 104 } 105 return $emails; 106 }); 107 if (get_option('eaee_enable_shipped_email', 0)) { 108 add_filter('woocommerce_email_actions', function ($actions) { 109 $actions[] = 'woocommerce_order_status_ea-shipped'; 110 return $actions; 111 }); 112 } 113 114 add_filter('woocommerce_locate_template', function ($template, $template_name, $template_path) { 115 $plugin_templates = [ 116 'emails/customer-shipped-order.php' => EAEE_PATH . 'templates/emails/customer-shipped-order.php', 117 'emails/plain/customer-shipped-order.php' => EAEE_PATH . 'templates/emails/plain/customer-shipped-order.php', 118 ]; 119 120 if (isset($plugin_templates[$template_name]) && file_exists($plugin_templates[$template_name])) { 121 return $plugin_templates[$template_name]; 122 } 123 124 return $template; 125 }, 20, 3); 126 // --------------------------------------------------------- 127 128 // 4. Sipariş Listesi ve Bulk Actions 95 129 if (class_exists('\\EAEE\\Admin\\OrdersList')) { 96 130 \EAEE\Admin\OrdersList::register(); 97 131 } 98 if (class_exists('\\EAEE\\Admin\\OrdersList')) { 132 133 // 5. Shortcode 134 if (class_exists('\\EAEE\\Frontend\\TrackingShortcode')) { 99 135 \EAEE\Frontend\TrackingShortcode::register(); 100 136 } 101 /*102 // Talep Durumuna Göre Açılabilir103 if (class_exists('\\EAEE\\Admin\\BulkActions')) {104 \EAEE\Admin\BulkActions::register();105 }106 */107 137 108 // Opsiyonel boot138 // 6. App Boot 109 139 if (class_exists('\\EAEE\\App') && method_exists('\\EAEE\\App', 'boot')) { 110 140 \EAEE\App::boot(); 111 141 } 142 112 143 require_once EAEE_PATH . 'includes/helpers.php'; 113 144 }, 0); 114 145 146 115 147 /** 116 148 * ------------------------------------------------------------ 117 * Tek Seferlik Migration (sürüm tabanlı)149 * Migration / Update / Deactivation 118 150 * ------------------------------------------------------------ 119 151 */ 120 121 // Mevcut sürüm sabiti: EAEE_VER122 152 add_action('plugins_loaded', 'eaee_maybe_run_upgrade', 1); 123 153 … … 125 155 { 126 156 $stored_version = get_option('eaee_plugin_version'); 127 128 // İlk kurulum: sadece versiyonu yaz, temizlik yapma129 157 if (!$stored_version) { 130 158 update_option('eaee_plugin_version', EAEE_VER); 131 159 return; 132 160 } 133 134 // Güncelleme: eski < yeni ise migration çalıştır135 161 if (version_compare($stored_version, EAEE_VER, '<')) { 136 162 eaee_run_migration_once_per_version(EAEE_VER); … … 140 166 } 141 167 142 /**143 * Her sürümde 1 kez çalışacak migration.144 */145 168 function eaee_run_migration_once_per_version($version) 146 169 { 147 170 $flag_key = 'eaee_cleanup_done_' . $version; 148 149 // Bu sürüm için daha önce çalıştıysa tekrar çalıştırma 150 if (get_option($flag_key)) { 151 return; 152 } 153 154 // ---------------- /TEMİZLİK / RESET ALANI ---------------- 171 if (get_option($flag_key)) return; 155 172 add_option($flag_key, 1); 156 173 } 157 /** 158 * ------------------------------------------------------------ 159 * Deaktivasyon İşlemleri (plugin devre dışı bırakıldığında) 160 * ------------------------------------------------------------ 161 */ 174 162 175 register_deactivation_hook(__FILE__, 'eaee_on_plugin_deactivate'); 163 176 164 177 function eaee_on_plugin_deactivate() 165 178 { 166 // Lisans bilgisini kaldır167 179 delete_option('eaee_license_id'); 168 169 // Transient cache'i temizle170 180 delete_transient('eaee_customer_data_cache'); 171 181 delete_site_transient('eaee_customer_data_cache'); 172 173 182 delete_option('_transient_eaee_customer_data_cache'); 174 183 delete_option('_site_transient_eaee_customer_data_cache'); 184 delete_option('eaee_enable_shipped_status'); 185 delete_option('eaee_enable_shipped_email'); 186 delete_option('eaee_shipped_email_message'); 175 187 } 176 188 177 189 add_action('admin_notices', function () { 178 if (! current_user_can('manage_options')) { 179 return; 180 } 181 if (! get_option('eaee_after_update_notice')) { 182 return; 183 } 184 echo '<div class="notice notice-success is-dismissible"><p>Eafatura eklentisi başarıyla güncellendi. Ayarlarınız korunmuştur.</p></div>'; 190 if (! current_user_can('manage_options')) return; 191 if (! get_option('eaee_after_update_notice')) return; 192 193 echo '<div class="notice notice-success is-dismissible"><p>Eafatura eklentisi güncellendi.</p></div>'; 185 194 delete_option('eaee_after_update_notice'); 186 195 }); -
eafatura-e-arsiv-entegrasyon/trunk/includes/Admin/Assets.php
r3401085 r3401475 21 21 add_action('wp_ajax_eaee_clear_shipping_settings', [self::class, 'clear_shipping_settings_callback']); 22 22 add_action('eaee_log_tracker_assets', [self::class, 'logTrackerAssets']); 23 add_action('wp_ajax_eaee_save_special_features', [self::class, 'eaee_save_special_features_ajax']); 23 24 24 25 … … 37 38 add_action('wp_ajax_eaee_disconnect_gib', [self::class, 'disconnect_gib_callback']); 38 39 } 39 40 public static function save_default_shipping_callback() 41 { 42 check_ajax_referer('eaee_shipping_nonce', 'nonce'); 43 44 if (!current_user_can('manage_woocommerce')) { 45 wp_send_json_error(['message' => 'Yetkisiz işlem.'], 403); 46 } 47 48 $default_integration = sanitize_key($_POST['default_integration'] ?? ''); 49 50 if ($default_integration === '') { 51 wp_send_json_error(['message' => 'Geçerli bir kargo profili seçilmedi.']); 52 } 53 54 // Eafatura API'ye varsayılan firmayı bildir 55 $apiRes = \EAEE\Services\EafaturaApi::update_default_company($default_integration); 56 57 if (!is_array($apiRes) || empty($apiRes['ok'])) { 58 wp_send_json_error([ 59 'message' => $apiRes['error'] ?? 'Eafatura sunucusuna varsayılan kargo bilgisi iletilirken hata oluştu.' 60 ]); 61 } 62 63 // *** ÖNEMLİ: Şablonda okuduğun option'a yaz *** 64 update_option('eaee_default_shipping_integration', $default_integration); 65 66 // Eğer başka yerde halen eaee_shipping_company kullanıyorsan, istersen senkron tut: 67 update_option('eaee_shipping_company', $default_integration); 68 69 wp_send_json_success(['message' => 'Varsayılan kargo entegrasyonu başarıyla güncellendi.']); 70 } 40 public static function eaee_save_special_features_ajax() 41 { 42 if (! current_user_can('manage_woocommerce')) { 43 wp_send_json_error(['message' => 'Yetkisiz erişim']); 44 } 45 46 check_ajax_referer('eaee_shipping_nonce', 'nonce'); 47 48 // Boolean/int ayarlar için güvenli cast 49 $enable_status = isset($_POST['eaee_enable_shipped_status']) 50 ? (int) sanitize_text_field(wp_unslash($_POST['eaee_enable_shipped_status'])) 51 : 0; 52 if (isset($_POST['eaee_enable_shipped_status'])) { 53 EafaturaApi::set_statuses($enable_status); 54 } 55 56 $enable_email = isset($_POST['eaee_enable_shipped_email']) 57 ? (int) sanitize_text_field(wp_unslash($_POST['eaee_enable_shipped_email'])) 58 : 0; 59 60 // Çok satırlı metin için güvenli sanitizasyon 61 $message = isset($_POST['eaee_shipped_email_message']) 62 ? sanitize_textarea_field(wp_unslash($_POST['eaee_shipped_email_message'])) 63 : ''; 64 65 update_option('eaee_enable_shipped_status', $enable_status ? 1 : 0); 66 update_option('eaee_enable_shipped_email', $enable_email ? 1 : 0); 67 update_option('eaee_shipped_email_message', $message); 68 69 wp_send_json_success(); 70 } 71 public static function save_default_shipping_callback() 72 { 73 check_ajax_referer('eaee_shipping_nonce', 'nonce'); 74 75 if (!current_user_can('manage_woocommerce')) { 76 wp_send_json_error(['message' => 'Yetkisiz işlem.'], 403); 77 } 78 79 $default_integration = sanitize_key($_POST['default_integration'] ?? ''); 80 81 if ($default_integration === '') { 82 wp_send_json_error(['message' => 'Geçerli bir kargo profili seçilmedi.']); 83 } 84 85 // Eafatura API'ye varsayılan firmayı bildir 86 $apiRes = \EAEE\Services\EafaturaApi::update_default_company($default_integration); 87 88 if (!is_array($apiRes) || empty($apiRes['ok'])) { 89 wp_send_json_error([ 90 'message' => $apiRes['error'] ?? 'Eafatura sunucusuna varsayılan kargo bilgisi iletilirken hata oluştu.' 91 ]); 92 } 93 94 // *** ÖNEMLİ: Şablonda okuduğun option'a yaz *** 95 update_option('eaee_default_shipping_integration', $default_integration); 96 97 // Eğer başka yerde halen eaee_shipping_company kullanıyorsan, istersen senkron tut: 98 update_option('eaee_shipping_company', $default_integration); 99 100 wp_send_json_success(['message' => 'Varsayılan kargo entegrasyonu başarıyla güncellendi.']); 101 } 71 102 72 103 public static function disconnect_gib_callback() -
eafatura-e-arsiv-entegrasyon/trunk/includes/Services/EafaturaApi.php
r3401085 r3401475 32 32 { 33 33 $url = self::BASE . '/secure-logout'; 34 35 $headers = [ 36 'X-License-Id' => Options::getLicenseId(), 37 'Site-URL' => get_site_url(), 38 'X-Uuid' => get_option('eafatura_uuid'), 39 'Content-Type' => 'application/json', 40 ]; 41 42 return Http::get($url, $headers); 43 } 44 45 public static function set_statuses(int $enable_status) 46 { 47 $url = self::BASE . '/get-woo-statuses?status=' . $enable_status; 34 48 35 49 $headers = [ … … 50 64 public static function getMarketplaceComments(string $marketplace, string $marketplace_product_id, string $woocommerce_product_id): array|WP_Error 51 65 { 52 $url = self::BASE . '/get-marketplace-comments'; // Bu endpoint Eafatura backend'inizde olmalı66 $url = self::BASE . '/get-marketplace-comments'; 53 67 54 68 $headers = [ … … 203 217 'shipping_lines' => $shipping_lines, 204 218 205 // İstediğin alanlar:206 219 'discount_total' => (float) $order->get_discount_total(), // Kupon indirimlerinin vergisiz toplamı 207 220 'discount_tax' => (float) $order->get_discount_tax(), // İndirimlere ait vergi … … 218 231 } 219 232 220 /** stdClass vs string hatalarını tek yerde çözer -> helpers.php dosyasına taşınabilir */221 233 public static function strMsg($val): string 222 234 { -
eafatura-e-arsiv-entegrasyon/trunk/includes/helpers.php
r3370644 r3401475 317 317 '_transient_eaee_customer_data_cache', 318 318 '_site_transient_eaee_customer_data_cache', 319 'eaee_enable_shipped_status', 320 'eaee_enable_shipped_email', 321 'eaee_shipped_email_message' 319 322 ); 320 323 foreach ($legacy_options as $opt) { -
eafatura-e-arsiv-entegrasyon/trunk/readme.txt
r3401085 r3401475 5 5 Tested up to: 6.8 6 6 Requires PHP: 7.4 7 Stable tag: 2.1. 47 Stable tag: 2.1.5 8 8 License: GPLv2 or later 9 9 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 78 78 6. Örnek bir kargo etiketi önizemesi 79 79 7. Hata izleme ekranı, servis ve sistem hatalarını görüntüleme ve anında Eafatura'ya gönderme. 80 8. Kargo takip ekranınızı oluşturun. 80 81 8. [Eafatura'da WooCommerce Kolay Kurulum Sihirbazı Nasıl Kullanır Video Kılavuzu](https://www.youtube.com/watch?v=5hbUEaSklJw) 81 82 … … 122 123 == Changelog == 123 124 Sürüm Geçmişi: 125 2.1.5 - Kargoya Verildi durumu eklendi. Eafatura API Servisinin, bu duruma getirdiği siparişler için gönderimi isteğinize bağlı, kargo takip bilgileri içeren Kargoya Verildi E-Posta gönderimi eklendi. 124 126 2.1.4 - Sipariş listesine kargo takip butonu eklendi. Ayrıca kendi kargo gönderi takip ekranınızı tasarlayabilmeniz için shortcode özelliği eklendi. 125 127 2.1.3 - Sipariş listesindeki eylem butonlarının bazı müşterilerde çalışmama sorunu düzeltildi. Barkod yazdırma ekranında geliştirmeler yapıldı. -
eafatura-e-arsiv-entegrasyon/trunk/templates/shipping-settings.php
r3401085 r3401475 5 5 */ 6 6 if (!defined('ABSPATH')) exit; 7 8 7 // Mevcut kayıtlı entegrasyonları ve varsayılanı çek 9 8 $saved_integrations = [ 10 'yurtici_normal' => get_option('eaee_yurtici_normal_saved'),9 'yurtici_normal' => get_option('eaee_yurtici_normal_saved'), 11 10 'yurtici_tahsilatli' => get_option('eaee_yurtici_tahsilatli_saved'), 12 'mng_normal' => get_option('eaee_mng_normal_saved'),13 'aras_normal' => get_option('eaee_aras_normal_saved'),14 'aras_tahsilatli' => get_option('eaee_aras_tahsilatli_saved'),11 'mng_normal' => get_option('eaee_mng_normal_saved'), 12 'aras_normal' => get_option('eaee_aras_normal_saved'), 13 'aras_tahsilatli' => get_option('eaee_aras_tahsilatli_saved'), 15 14 ]; 16 15 $default_integration = get_option('eaee_default_shipping_integration'); 17 18 16 // Select menüsü için okunabilir isimler 19 17 $integration_labels = [ 20 'yurtici_normal' => 'Yurtiçi Kargo - Gönderici Ödemeli',18 'yurtici_normal' => 'Yurtiçi Kargo - Gönderici Ödemeli', 21 19 'yurtici_tahsilatli' => 'Yurtiçi Kargo - Tahsilatlı', 22 'mng_normal' => 'MNG Kargo',23 'aras_normal' => 'Aras Kargo - Gönderici Ödemeli',24 'aras_tahsilatli' => 'Aras Kargo - Tahsilatlı',20 'mng_normal' => 'MNG Kargo', 21 'aras_normal' => 'Aras Kargo - Gönderici Ödemeli', 22 'aras_tahsilatli' => 'Aras Kargo - Tahsilatlı', 25 23 ]; 26 24 $yc_normal_saved = get_option('eaee_yurtici_normal_saved'); … … 30 28 $mng_normal_saved = get_option('eaee_mng_normal_saved'); 31 29 $already_inserted_text = esc_html__('Bu gönderim tipi için bilgileriniz Eafatura sisteminde şifrelenerek kaydedildi. Güvenliğiniz sebebiyle ayrıca gösterilmiyor.', 'eafatura-e-arsiv-entegrasyon'); 30 $shipped_email_message = get_option('eaee_shipped_email_message', 'Siparişiniz kargoya verildi! Detayları aşağıda görüntüleyebilirsiniz.'); 31 $shipped_status_enabled = (int) get_option('eaee_enable_shipped_status', 0); 32 $shipped_email_enabled = (int) get_option('eaee_enable_shipped_email', 0); 32 33 ?> 33 34 <div class="wrap eaee-premium-ui"> … … 38 39 </div> 39 40 </div> 40 41 42 43 41 <div id="eaee-shipping-settings-app" class="eaee-shipping-layout"> 44 45 42 <div class="eaee-shipping-nav"> 46 43 <button type="button" class="eaee-nav-item is-active" data-target="yurtici"> … … 58 55 <button type="button" class="eaee-nav-item" data-target="tracking"> 59 56 <span class="dashicons dashicons-location-alt"></span> 60 <span>Kargo Takip Ekranı</span>57 <span>Kargo Genel Ayarlar</span> 61 58 </button> 62 59 </div> 63 64 60 <div class="eaee-shipping-content"> 65 <div class="eaee-card" id="eaee-default-shipping-card">61 <div class="eaee-card" id="eaee-default-shipping-card"> 66 62 <div class="eaee-card-header"> 67 63 <h2><?php esc_html_e('Varsayılan Kargo Entegrasyonu', 'eafatura-e-arsiv-entegrasyon'); ?></h2> … … 137 133 </div> 138 134 </form> 139 140 135 <form class="eaee-shipping-form" data-integration-type="yurtici_tahsilatli"> 141 136 <div class="eaee-card"> … … 179 174 </form> 180 175 </div> 181 182 176 <div id="eaee-mng-options" class="eaee-conditional-group is-hidden"> 183 177 <form class="eaee-shipping-form" data-integration-type="mng_normal"> … … 222 216 </form> 223 217 </div> 224 225 226 227 228 229 218 <div id="eaee-aras-options" class="eaee-conditional-group"> 230 219 <form class="eaee-shipping-form" data-integration-type="aras_normal"> … … 268 257 </div> 269 258 </form> 270 271 259 <form class="eaee-shipping-form" data-integration-type="aras_tahsilatli"> 272 260 <div class="eaee-card"> … … 310 298 </form> 311 299 </div> 312 313 300 <div id="eaee-tracking-options" class="eaee-conditional-group is-hidden"> 314 301 <div class="eaee-card"> … … 329 316 </div> 330 317 </div> 318 <div class="eaee-card"> 319 <div class="eaee-card-header"> 320 <h2><?php esc_html_e('Özel Kargo Özellikleri', 'eafatura-e-arsiv-entegrasyon'); ?></h2> 321 </div> 322 <div class="eaee-card-body"> 323 <form id="eaee-special-features-form"> 324 <div class="eaee-form-row"> 325 <label class="eaee-form-label"> 326 <h3><?php esc_html_e('Kargoya Verildi Sipariş Durumu', 'eafatura-e-arsiv-entegrasyon'); ?></h3> 327 <p><?php esc_html_e('Sipariş detaylarında dropdown ve toplu işlemlere "Kargoya Verildi" durumunu ekler.', 'eafatura-e-arsiv-entegrasyon'); ?></p> 328 </label> 329 <div class="eaee-form-field"> 330 <input type="checkbox" name="eaee_enable_shipped_status" id="eaee_enable_shipped_status" <?php checked(get_option('eaee_enable_shipped_status', 0), 1); ?>> 331 <label for="eaee_enable_shipped_status"><?php esc_html_e('Etkinleştir', 'eafatura-e-arsiv-entegrasyon'); ?></label> 332 </div> 333 </div> 334 <div class="eaee-form-row"> 335 <label class="eaee-form-label"> 336 <h3><?php esc_html_e('Kargoya Verildi E-Postası', 'eafatura-e-arsiv-entegrasyon'); ?></h3> 337 <p><?php esc_html_e('Sipariş "Kargoya Verildi" durumuna geçtiğinde müşteriye otomatik e-posta gönderir.', 'eafatura-e-arsiv-entegrasyon'); ?></p> 338 </label> 339 <div class="eaee-form-field"> 340 <input 341 type="checkbox" 342 name="eaee_enable_shipped_email" 343 id="eaee_enable_shipped_email" 344 <?php checked($shipped_email_enabled, 1); ?> 345 <?php disabled(!$shipped_status_enabled); ?>> 346 <label for="eaee_enable_shipped_email"><?php esc_html_e('Etkinleştir', 'eafatura-e-arsiv-entegrasyon'); ?></label> 347 </div> 348 </div> 349 <div class="eaee-form-row"> 350 <label class="eaee-form-label"> 351 <h3><?php esc_html_e('Kargoya Verildi E-Posta Mesajı', 'eafatura-e-arsiv-entegrasyon'); ?></h3> 352 <p><?php esc_html_e('E-posta içeriğindeki mesajı özelleştirin. Örnek: Siparişiniz yola çıktı! Detaylar aşağıda.', 'eafatura-e-arsiv-entegrasyon'); ?></p> 353 </label> 354 <div class="eaee-form-field"> 355 <textarea 356 name="eaee_shipped_email_message" 357 id="eaee_shipped_email_message" 358 class="eaee-input" 359 rows="3" 360 <?php disabled(!$shipped_status_enabled); ?>><?php echo esc_textarea($shipped_email_message); ?></textarea> 361 </div> 362 </div> 363 </form> 364 </div> 365 <div class="eaee-card-footer"> 366 <button type="button" class="button button-primary eaee-btn" id="eaee-save-special-features"> 367 <span class="dashicons dashicons-saved"></span> 368 <span class="button-text"><?php esc_html_e('Özellikleri Kaydet', 'eafatura-e-arsiv-entegrasyon'); ?></span> 369 </button> 370 </div> 371 </div> 331 372 </div> 332 373 </div> 333 374 </div> 375 334 376 </div> -
eafatura-e-arsiv-entegrasyon/trunk/uninstall.php
r3370644 r3401475 53 53 'eaee_mng_tahsilatli_saved', 54 54 'eaee_aras_normal_saved', 55 'eaee_aras_tahsilatli_saved' 55 'eaee_aras_tahsilatli_saved', 56 'eaee_enable_shipped_status', 57 'eaee_enable_shipped_email', 58 'eaee_shipped_email_message' 56 59 ]; 57 60
Note: See TracChangeset
for help on using the changeset viewer.