Vývojárska referencia
Plugin je navrhnutý s dôrazom na rozšíriteľnosť. Vývojári môžu správanie prispôsobiť cez:
- Hooky a filtre – Akciové a filtrovacie hooky pre výpočet dopravy, dopyty na odberné miesta, prepísanie adresy objednávky, sledovanie zásielok, generovanie ePH zásielok a nízkoúrovňové API požiadavky.
- Referencia šablón – Prepísateľné PHP šablóny pre výber odberného miesta v pokladni a dialóg.
Text domain
Všetky prekladateľné reťazce používajú text domain wcsp.
__( 'Select pickup point', 'wcsp' );
_e( 'My Location', 'wcsp' );
Prekladové súbory (.po/.mo) sú uložené v adresári languages/ pluginu. Plugin je plne preložiteľný pomocou štandardných WordPress i18n nástrojov (Loco Translate, Poedit a pod.).
Štruktúra tried pluginu
| Trieda | Súbor | Úloha |
|---|---|---|
WCSP_WooCommerce_Slovenska_Posta | woocommerce-slovenska-posta.php | Bootstrap, licenčná brána, načítanie skriptov |
WCSP_Admin_Settings | includes/admin/class-admin-settings.php | Renderovanie a ukladanie stránky nastavení |
WCSP_Shipping_Methods | includes/class-shipping-methods.php | Registrácia tried spôsobov dopravy |
WCSP_Balik_Na_Postu_Shipping_Method | includes/shipping-methods/balik-na-postu.php | Výpočet dopravy BNP |
WCSP_BalikoBOX_Shipping_Method | includes/shipping-methods/balikobox.php | Výpočet dopravy BBOX |
WCSP_Checkout | includes/class-checkout.php | Vkladanie UI pokladne a validácia objednávky |
WCSP_Blocks_Integration | includes/class-blocks-integration.php | Bootstrap integrácie WooCommerce Blocks |
WCSP_Checkout_Block_Integration | includes/class-blocks-checkout-integration.php | Integrácia checkout bloku pre polia odberného miesta |
WCSP_Pickup_Points | includes/class-pickup-points.php | Databázové dotazy a prístup k dátam |
WCSP_Ajax_Handlers | includes/class-ajax-handlers.php | WordPress AJAX action handlery |
WCSP_Order_Display | includes/class-order-display.php | Zobrazenie odberného miesta v objednávkach a e-mailoch |
WCSP_Tracking | includes/class-tracking.php | Tracking metaboxy, synchronizácia a výstup pre zákazníka/e-maily |
WCSP_Tracking_API | includes/class-tracking-api.php | Klient tracking API a normalizácia udalostí |
WCSP_EPH_Manager | includes/class-eph-manager.php | ePH admin workflow, bulk akcie a vytváranie zásielok |
WCSP_EPH_API | includes/class-eph-api.php | Nízkoúrovňový ePH REST klient |
WCSP_EPH_Logger | includes/class-eph-logger.php | Trvalé logovanie ePH požiadaviek |
WCSP_Package_Validator | includes/class-package-validator.php | Logika validácie rozmerov |
WCSP_Box_Packer | includes/class-box-packer.php | Algoritmus bin-packing |
WCSP_Cron | includes/class-cron.php | Správa plánovaných aktualizácií |
WCSP_License | includes/class-license-manager.php | Validácia a cachovanie licencie |
Požiadavky na PHP
- PHP 8.1+ – plugin používa jazykové vlastnosti PHP 8.1 vrátane enumov,
readonlyproperties a typovaných argumentov.
Hooky a filtre
Akciové hooky
Výpočet dopravy
wcsp_before_calculate_shipping_bnp
Spustí sa pred výpočtom nákladov na dopravu Balíka na Poštu.
add_action( 'wcsp_before_calculate_shipping_bnp', function( $package ) {
// $package = WooCommerce package array
} );
wcsp_before_calculate_shipping_bbox
Spustí sa pred výpočtom nákladov na dopravu BalikoBOX.
add_action( 'wcsp_before_calculate_shipping_bbox', function( $package ) {
// $package = WooCommerce package array
} );
Validácia odberného miesta (klasická pokladňa)
wcsp_before_validate_pickup_point_selection
Spustí sa pred spustením serverovej validácie výberu odberného miesta počas klasickej pokladne.
add_action( 'wcsp_before_validate_pickup_point_selection', function( $chosen_service ) {
// $chosen_service = string — 'BNP' or 'BBOX'
} );
wcsp_validate_pickup_point_selection
Spustí sa po úspešnom prejdení vstavanou validáciou odberného miesta. Použite na pridanie vlastnej validácie.
add_action( 'wcsp_validate_pickup_point_selection', function( $selected_pp, $chosen_service ) {
// $selected_pp = array — selected pickup point session data
// $chosen_service = string — 'BNP' or 'BBOX'
// Call wc_add_notice( 'message', 'error' ) to block the order
}, 10, 2 );
Validácia odberného miesta (Block Checkout)
wcsp_before_validate_pickup_point_block_checkout
Spustí sa pred spustením validácie počas odoslania objednávky cez WooCommerce Blocks checkout.
add_action( 'wcsp_before_validate_pickup_point_block_checkout', function( $order, $request, $chosen_service ) {
// $order = WC_Order
// $request = WP_REST_Request
// $chosen_service = string — 'BNP' or 'BBOX'
}, 10, 3 );
wcsp_validate_pickup_point_block_checkout
Spustí sa po úspešnom prejdení vstavanou validáciou block checkoutu. Použite na pridanie vlastnej validácie.
add_action( 'wcsp_validate_pickup_point_block_checkout', function( $selected_pp, $order, $request ) {
// $selected_pp = array — selected pickup point session data
// $order = WC_Order
// $request = WP_REST_Request
}, 10, 3 );
Spracovanie objednávky
wcsp_apply_pickup_point_to_order
Spustí sa po zapísaní dát odberného miesta do objednávky (meta uložené, adresa prepísaná ak je nakonfigurované).
add_action( 'wcsp_apply_pickup_point_to_order', function( $order, $selected_pp ) {
// $order = WC_Order
// $selected_pp = array — pickup point session data
}, 10, 2 );
Zobrazenie objednávky
wcsp_before_pickup_point_email_display / wcsp_after_pickup_point_email_display
Spustia sa pred a po vykreslení sekcie odberného miesta v e-mailoch objednávok.
add_action( 'wcsp_before_pickup_point_email_display', function( $order, $pickup_point_id, $sent_to_admin, $plain_text ) {
// $order = WC_Order
// $pickup_point_id = int
// $sent_to_admin = bool
// $plain_text = bool
}, 10, 4 );
wcsp_before_pickup_point_admin_display / wcsp_after_pickup_point_admin_display
Spustia sa pred a po vykreslení sekcie odberného miesta na stránke úpravy objednávky vo WP-Admin.
add_action( 'wcsp_before_pickup_point_admin_display', function( $order, $pickup_point_id ) {
// $order = WC_Order
// $pickup_point_id = int
}, 10, 2 );
wcsp_before_pickup_point_order_details_display / wcsp_after_pickup_point_order_details_display
Spustia sa pred a po vykreslení sekcie odberného miesta na stránke Ďakujeme za objednávku a v zobrazení objednávky v Mojom účte.
add_action( 'wcsp_before_pickup_point_order_details_display', function( $order, $pickup_point_id ) {
// $order = WC_Order
// $pickup_point_id = int
}, 10, 2 );
Import databázy
wcsp_before_import_from_xml / wcsp_after_import_from_xml
Spustia sa pred a po spustení importu XML odberných miest.
add_action( 'wcsp_before_import_from_xml', function( $local_file ) {
// $local_file = string — absolute path to the XML file being imported
} );
add_action( 'wcsp_after_import_from_xml', function( $local_file, $parsed_data ) {
// $local_file = string — absolute path to the XML file
// $parsed_data = array — all parsed pickup point rows
}, 10, 2 );
AJAX
wcsp_before_save_selected_pickup_point
Spustí sa pred uložením výberu odberného miesta do session WooCommerce.
add_action( 'wcsp_before_save_selected_pickup_point', function( $pp_id, $pp_details ) {
// $pp_id = int — pickup point database ID
// $pp_details = object — full pickup point record from the database
}, 10, 2 );
wcsp_before_save_widget_pickup_point
Spustí sa pred uložením odberného miesta vybraného cez frontend widget do session WooCommerce.
add_action( 'wcsp_before_save_widget_pickup_point', function( $widget_id, $label, $chosen_service ) {
// $widget_id = string
// $label = string — názov widgetu zobrazený zákazníkovi
// $chosen_service = string — 'BNP' alebo 'BBOX'
}, 10, 3 );
ePH Admin UI
wcsp_before_eph_metabox_fields / wcsp_after_eph_metabox_fields
Spustia sa pred a po vykreslení polí ePodací Hárok v metaboxe objednávky.
wcsp_before_eph_metabox_fields dostáva $order, $eph_values a $pickup_point.
wcsp_after_eph_metabox_fields dostáva tie isté hodnoty a navyše pole $state s kľúčmi sheet_id, parcel_id, parcel_number, label_url, registered a is_configured.
add_action( 'wcsp_after_eph_metabox_fields', function( $order, $eph_values, $pickup_point, $state ) {
// $order = WC_Order
// $eph_values = array — aktuálne ePH hodnoty objednávky
// $pickup_point = array — sumár odberného miesta alebo prázdne pole
// $state = array — aktuálny stav zásielky
}, 10, 4 );
wcsp_eph_admin_assets_enqueued
Spustí sa po načítaní ePH admin assetov a lokalizovaných dát pre JavaScript.
add_action( 'wcsp_eph_admin_assets_enqueued', function( $hook, $script_data ) {
// $hook = string — hook aktuálnej WP-Admin obrazovky
// $script_data = array — lokalizované dáta pre wcsp-eph-admin.js
}, 10, 2 );
wcsp_before_save_eph_order_values / wcsp_after_save_eph_order_values
Spustia sa pred a po uložení ePH hodnôt objednávky z admin metaboxu.
add_action( 'wcsp_before_save_eph_order_values', function( $order, $values, $data, $defaults ) {
// $order = WC_Order
// $values = array — sanitizované hodnoty pripravené na uloženie
// $data = array — raw request dáta
// $defaults = array — predvolené hodnoty objednávky
}, 10, 4 );
Životný cyklus ePH zásielky
wcsp_eph_before_create_shipment / wcsp_eph_after_create_shipment
Spustia sa bezprostredne pred vytvorením ePH zásielky a po vytvorení hárku a balíka.
add_action( 'wcsp_eph_after_create_shipment', function( $order, $sheet_id, $parcel_id, $parcel_number, $parcel_data, $sheet_result, $parcel_result ) {
// $order = WC_Order
// $sheet_id = string
// $parcel_id = string
// $parcel_number = string
// $parcel_data = array — payload odoslaný na add parcel endpoint
}, 10, 7 );
wcsp_eph_before_finalize_shipment / wcsp_eph_after_finalize_shipment
Spustia sa pred registráciou zásielky a po dokončení celého finalize workflow.
add_action( 'wcsp_eph_after_finalize_shipment', function( $order, $result, $args ) {
// $order = WC_Order
// $result = array — výsledok z finalize_order_shipment()
// $args = array — normalizované finalize argumenty
}, 10, 3 );
wcsp_eph_after_register_sheet
Spustí sa po úspešnej registrácii hárku cez ePH API.
add_action( 'wcsp_eph_after_register_sheet', function( $order, $sheet_id, $register_result, $args ) {
// $order = WC_Order
// $sheet_id = string
// $register_result = array — dekódovaná odpoveď ePH API
// $args = array — finalize argumenty
}, 10, 4 );
wcsp_eph_tracking_number_synced
Spustí sa po skopírovaní novo vytvoreného čísla zásielky ePH do tracking meta polí objednávky.
add_action( 'wcsp_eph_tracking_number_synced', function( $order, $parcel_number, $old_tracking ) {
// $order = WC_Order
// $parcel_number = string
// $old_tracking = string — predchádzajúce tracking číslo, ak existovalo
}, 10, 3 );
wcsp_eph_before_label_download / wcsp_eph_after_store_label
Spustia sa pred stiahnutím vygenerovaného PDF štítku a po jeho lokálnom uložení.
add_action( 'wcsp_eph_after_store_label', function( $order, $local_url, $remote_url, $filepath, $data ) {
// $order = WC_Order
// $local_url = string — verejná uploads URL uloženého štítku
// $remote_url = string — vzdialená URL štítku z API
// $filepath = string — absolútna lokálna cesta k súboru
// $data = array — dekódované dáta odpovede so štítkom
}, 10, 5 );
Hromadné ePH spracovanie
wcsp_before_apply_bulk_eph_values / wcsp_after_apply_bulk_eph_values
Spustia sa pred a po aplikovaní spoločných hodnôt z bulk dialógu na konkrétnu objednávku.
add_action( 'wcsp_after_apply_bulk_eph_values', function( $order, $bulk_values, $data, $values ) {
// $order = WC_Order
// $bulk_values = array — normalizované hodnoty z bulk dialógu
// $data = array — raw request dáta
// $values = array — existujúce ePH hodnoty objednávky
}, 10, 4 );
wcsp_eph_before_bulk_finalize_order / wcsp_eph_bulk_finalize_order_error / wcsp_eph_after_bulk_finalize_order
Spustia sa okolo hromadného workflow „Generate ePH Labels“ pre každú objednávku.
add_action( 'wcsp_eph_bulk_finalize_order_error', function( $order, $result, $bulk_data, $existing_mode, $has_existing_eph ) {
// $order = WC_Order
// $result = WP_Error
// $bulk_data = array
// $existing_mode = string — 'skip' alebo 'recreate'
// $has_existing_eph = bool
}, 10, 5 );
wcsp_before_clear_eph_state / wcsp_after_clear_eph_state
Spustia sa pred a po vymazaní uloženého ePH stavu z objednávky.
add_action( 'wcsp_before_clear_eph_state', function( $order ) {
// $order = WC_Order
} );
ePH API požiadavky
wcsp_eph_before_api_request
Spustí sa bezprostredne pred odoslaním autentifikovanej požiadavky nízkoúrovňovým ePH REST klientom.
add_action( 'wcsp_eph_before_api_request', function( $method, $path, $body, $context, $url, $args ) {
// $method = string — GET, PUT, POST, DELETE
// $path = string — API cesta, napríklad /sheets
// $body = array
// $context = array — kontext volania, typicky order_id a action
// $url = string — plná request URL
// $args = array — argumenty pre wp_remote_request()
}, 10, 6 );
wcsp_eph_api_request_failed
Spustí sa, keď wp_remote_request() zlyhá ešte pred tým, než ePH API vráti HTTP odpoveď.
add_action( 'wcsp_eph_api_request_failed', function( $response, $method, $path, $body, $context, $url, $args, $log_base ) {
// $response = WP_Error
// $log_base = array — normalizovaný log payload pripravený klientom
}, 10, 8 );
wcsp_eph_after_api_request
Spustí sa po úspešnom dekódovaní a normalizácii odpovede ePH API.
add_action( 'wcsp_eph_after_api_request', function( $decoded, $method, $path, $body, $context, $url, $args, $http_code, $raw_body, $duration_ms ) {
// $decoded = array — dekódovaná odpoveď API
// $http_code = int
// $raw_body = string
// $duration_ms = int
}, 10, 10 );
Filtrovacie hooky
Náklady na dopravu
wcsp_shipping_cost_bnp / wcsp_shipping_cost_bbox
Upravte výsledné vypočítané náklady na dopravu pred pridaním sadzby do WooCommerce.
add_filter( 'wcsp_shipping_cost_bnp', function( $cost, $package ) {
// $cost = float — calculated shipping cost
// $package = array — WooCommerce package
return $cost;
}, 10, 2 );
wcsp_shipping_rate_bnp / wcsp_shipping_rate_bbox
Upravte celé pole sadzby pred jej registráciou vo WooCommerce.
add_filter( 'wcsp_shipping_rate_bnp', function( $rate, $package ) {
// $rate = array — with keys: id, label, cost, taxes, meta_data, etc.
return $rate;
}, 10, 2 );
Výpočet hmotnosti
wcsp_item_weight_for_cost
Upravte hmotnosť jednotlivej položky v košíku pred jej pripočítaním k celkovej hmotnosti pre výpočet nákladov.
add_filter( 'wcsp_item_weight_for_cost', function( $weight, $product, $item, $package ) {
// $weight = float — raw product weight (before quantity multiplication)
// $product = WC_Product
// $item = array — WooCommerce cart item
// $package = array — WooCommerce package
return $weight;
}, 10, 4 );
wcsp_total_weight_for_cost_bnp / wcsp_total_weight_for_cost_bbox
Upravte celkovú hmotnosť košíka použitú vo výpočte nákladov na dopravu, po sčítaní všetkých položiek a hmotnosti balenia inštancie.
add_filter( 'wcsp_total_weight_for_cost_bnp', function( $total_weight, $cart_weight, $packing_weight, $package ) {
// $total_weight = float — cart_weight + packing_weight
// $cart_weight = float — sum of all item weights
// $packing_weight = float — instance-level packing material weight
// $package = array — WooCommerce package
return $total_weight;
}, 10, 4 );
Validácia rozmerov
wcsp_bnp_valid_dimensions / wcsp_bbox_valid_dimensions
Prepíšte výsledok validácie rozmerov produktu.
add_filter( 'wcsp_bnp_valid_dimensions', function( $is_valid, $product, $validation, $package ) {
// $is_valid = bool — current validation result
// $product = WC_Product
// $validation = array — full validation result array
// $package = array — WooCommerce package
return $is_valid;
}, 10, 4 );
wcsp_bnp_box_packing_result / wcsp_bbox_box_packing_result
Prepíšte výsledok kontroly bin-packing.
add_filter( 'wcsp_bnp_box_packing_result', function( $fits, $pack_result, $package ) {
// $fits = bool — whether items fit in the box
// $pack_result = array — full packing result from WCSP_Box_Packer
// $package = array — WooCommerce package
return $fits;
}, 10, 3 );
Filtre AJAX odpovedí
wcsp_ajax_pickup_point_details
Upravte pole podrobností odberného miesta vrátené AJAX akciou wcsp_pp_get_pp_details.
add_filter( 'wcsp_ajax_pickup_point_details', function( $response, $pp_id ) {
// $response = array — full details array (id, name, address, opening_hours, etc.)
// $pp_id = int
return $response;
}, 10, 2 );
wcsp_ajax_search_pickup_points
Upravte pole výsledkov vyhľadávania vrátené AJAX akciou wcsp_pp_search_pp.
add_filter( 'wcsp_ajax_search_pickup_points', function( $results, $search ) {
// $results = array — array of pickup point result arrays
// $search = string — the search term used
return $results;
}, 10, 2 );
wcsp_ajax_closeby_pickup_points
Upravte pole blízkych výsledkov vrátené AJAX akciou wcsp_pp_get_closeby_pp.
add_filter( 'wcsp_ajax_closeby_pickup_points', function( $results, $lat, $lng ) {
// $results = array — array of nearby pickup point result arrays (with distance field)
// $lat = float
// $lng = float
return $results;
}, 10, 3 );
wcsp_selected_pickup_point_session_data
Upravte dáta uložené v session WooCommerce pri potvrdení výberu odberného miesta.
add_filter( 'wcsp_selected_pickup_point_session_data', function( $session_data ) {
// $session_data = array — data to be stored in WC session
return $session_data;
} );
wcsp_selected_widget_pickup_point_session_data
Upravte dáta uložené v session WooCommerce pri potvrdení odberného miesta vybraného cez widget.
add_filter( 'wcsp_selected_widget_pickup_point_session_data', function( $session_data ) {
// $session_data = array - dáta ukladané do session WC
return $session_data;
} );
Prepísanie doručovacej adresy
wcsp_should_override_shipping_address / wcsp_replace_shipping_address_on_order
Ovládajte, či sa má doručovacia adresa objednávky prepísať adresou vybraného odberného miesta.
add_filter( 'wcsp_should_override_shipping_address', function( $should_override, $order, $data ) {
// $should_override = bool
// $order = WC_Order
// $data = array - checkout order data
return $should_override;
}, 10, 3 );
Prístup k dátam odberných miest
wcsp_all_map_markers / wcsp_pickup_points_search_results / wcsp_pickup_points_closeby_results
Upravte surové datasety odberných miest vracané internou dátovou vrstvou pre mapové markery, vyhľadávanie a blízke výsledky.
add_filter( 'wcsp_pickup_points_search_results', function( $results, $search, $service_code, $exclude_bbox ) {
// $results = array
// $search = string
// $service_code = string
// $exclude_bbox = bool
return $results;
}, 10, 4 );
wcsp_pickup_point_details / wcsp_can_accept_weight / wcsp_parsed_posta_row
Prispôsobte detail jedného odberného miesta, kontrolu prijatia hmotnosti a normalizované XML riadky importu ešte pred interným použitím.
add_filter( 'wcsp_parsed_posta_row', function( $row, $posta ) {
// $row = array - normalizovaný riadok pripravený na uloženie
// $posta = array|SimpleXMLElement - surový zdrojový uzol bodu
return $row;
}, 10, 2 );
Box packing a validácia balíka
wcsp_box_packer_items / wcsp_bnp_box_dimensions
Prispôsobte normalizovaný zoznam položiek pre interný box-packing algoritmus a virtuálne rozmery boxu Balíka na poštu použité pri tejto validácii.
add_filter( 'wcsp_box_packer_items', function( $items, $service ) {
// $items = array - normalizované položky pre box packer
// $service = string - 'balikobox' alebo 'bnp'
return $items;
}, 10, 2 );
wcsp_meets_minimum_face / wcsp_within_max_balik / wcsp_within_max_expres / wcsp_within_max_lp
Prepíšte nízkoúrovňové kontroly rozmerových pravidiel používané v WCSP_Package_Validator.
add_filter( 'wcsp_within_max_lp', function( $within_limit, $length_plus_perimeter ) {
// $within_limit = bool
// $length_plus_perimeter = float
return $within_limit;
}, 10, 2 );
wcsp_is_skladne / wcsp_is_neskladne / wcsp_product_dimensions / wcsp_validate_product_dimensions_result
Prepíšte klasifikáciu balíka, normalizované rozmery produktu a finálny validačný výsledok vracaný z WCSP_Package_Validator.
add_filter( 'wcsp_validate_product_dimensions_result', function( $result, $length, $width, $height, $is_irregular ) {
// $result = array - kompletný validačný výsledok
// $length = float
// $width = float
// $height = float
// $is_irregular = bool
return $result;
}, 10, 5 );
Predvolené hodnoty nastavení
wcsp_bbox_default_length / wcsp_bbox_default_width / wcsp_bbox_default_height
Prepíšte predvolené maximálne rozmery BalikoBOX zobrazené v nastaveniach pluginu ešte pred uložením vlastných hodnôt obchodníkom.
add_filter( 'wcsp_bbox_default_length', function( $default_length ) {
// $default_length = int|float
return $default_length;
} );
Konfigurácia ePH
wcsp_eph_allowed_parcel_categories / wcsp_eph_parcel_category_labels / wcsp_eph_allowed_payment_types / wcsp_eph_payment_type_labels / wcsp_eph_allowed_parcel_classes / wcsp_eph_parcel_class_labels / wcsp_eph_allowed_service_codes / wcsp_eph_service_labels
Ovládajte, ktoré ePH kategórie zásielok, typy platieb, triedy zásielok a doplnkové služby sú dostupné v admin rozhraní a ako sa zobrazujú.
add_filter( 'wcsp_eph_service_labels', function( $labels ) {
// $labels = array - kód služby => popis
return $labels;
} );
wcsp_eph_is_configured / wcsp_eph_admin_script_data / wcsp_eph_bulk_actions
Prepíšte kontrolu pripravenosti ePH, lokalizované dáta pre admin JavaScript a registrované WooCommerce bulk akcie.
add_filter( 'wcsp_eph_admin_script_data', function( $script_data, $hook ) {
// $script_data = array
// $hook = string - hook aktuálnej WP-Admin obrazovky
return $script_data;
}, 10, 2 );
Dáta objednávky a zásielky ePH
wcsp_eph_order_weight / wcsp_eph_detect_cod / wcsp_eph_order_defaults / wcsp_eph_order_values / wcsp_eph_sanitized_order_values
Ovládajte výpočet predvolených ePH hodnôt objednávky, detekciu dobierky a normalizáciu hodnôt z metaboxu pred uložením.
add_filter( 'wcsp_eph_sanitized_order_values', function( $values, $order, $data, $defaults ) {
// $values = array - sanitizované hodnoty pripravené na uloženie
// $order = WC_Order
// $data = array - raw request dáta
// $defaults = array
return $values;
}, 10, 4 );
wcsp_eph_metabox_html / wcsp_eph_order_list_summary_data / wcsp_eph_bulk_dialog_defaults / wcsp_eph_bulk_order_values / wcsp_eph_bulk_results
Prispôsobte vykreslené HTML metaboxu, sumárne dáta v zozname objednávok, predvolené hodnoty bulk dialógu, hodnoty aplikované na objednávku a agregované bulk výsledky.
add_filter( 'wcsp_eph_bulk_results', function( $results, $order_ids, $bulk_data, $existing_mode ) {
// $results = array
// $order_ids = int[]
// $bulk_data = array
// $existing_mode = string - 'skip' alebo 'recreate'
return $results;
}, 10, 4 );
wcsp_eph_sender_data / wcsp_eph_recipient_data / wcsp_eph_reception_method / wcsp_eph_parcel_data / wcsp_eph_finalize_shipment_args / wcsp_eph_finalize_shipment_result / wcsp_eph_services_before_enforcement / wcsp_eph_services
Upravte odosielateľa, príjemcu, kódy služieb a finálne request payloady používané pri vytváraní a registrácii zásielky.
add_filter( 'wcsp_eph_parcel_data', function( $parcel_data, $order, $values, $sheet_id, $sender ) {
// $parcel_data = array
// $order = WC_Order
// $values = array
// $sheet_id = string
// $sender = array
return $parcel_data;
}, 10, 5 );
Štítky a API filtre ePH
wcsp_eph_label_remote_url / wcsp_eph_label_download_args / wcsp_eph_label_subdir / wcsp_eph_label_filename
Upravte vzdialenú URL PDF štítku, argumenty sťahovania a lokálnu cestu a názov súboru pri ukladaní štítkov.
add_filter( 'wcsp_eph_label_filename', function( $filename, $order, $data, $parcel_number ) {
// $filename = string
// $order = WC_Order
// $data = array
// $parcel_number = string
return $filename;
}, 10, 4 );
wcsp_eph_api_base_url / wcsp_eph_api_request_url / wcsp_eph_api_request_args / wcsp_eph_api_invalid_response_message / wcsp_eph_api_error_message / wcsp_eph_api_response_data / wcsp_eph_api_validation_reason_labels
Upravte nízkoúrovňové URL ePH API požiadaviek, argumenty requestov, chybové hlášky, dekódované odpovede a popisy validačných reason kódov.
add_filter( 'wcsp_eph_api_response_data', function( $decoded, $method, $path, $body, $context, $http_code, $raw_body ) {
// $decoded = array
// $method = string
// $path = string
// $body = array
// $context = array
// $http_code = int
// $raw_body = string
return $decoded;
}, 10, 7 );
Sledovanie
Akciové hooky sledovania
wcsp_tracking_synced
Spustí sa po úspešnej synchronizácii na pozadí pre objednávku.
add_action( 'wcsp_tracking_synced', function( $order, $events ) {
// $order = WC_Order
// $events = array — normalized events array (newest first)
}, 10, 2 );
wcsp_before_tracking_email / wcsp_after_tracking_email
Spustia sa pred a po vykreslení sekcie sledovania v e-maile objednávky.
add_action( 'wcsp_before_tracking_email', function( $order, $tracking_number, $plain_text ) {
// $order = WC_Order
// $tracking_number = string
// $plain_text = bool
}, 10, 3 );
Filtrovacie hooky sledovania
wcsp_tracking_api_endpoint
Prepíšte URL endpointu API použitého na načítanie udalostí sledovania.
add_filter( 'wcsp_tracking_api_endpoint', function( $url ) {
// $url = string — default: https://api.posta.sk/tracking?q=...&l=...&p=1
return $url;
} );
wcsp_tracking_status_map
Prispôsobte mapovanie surových kódov stavu API Slovenskej pošty na generické kategórie.
add_filter( 'wcsp_tracking_status_map', function( $map ) {
// $map = array — status_code => category string
// Built-in categories: registered, accepted, in_transit, out_for_delivery,
// stored_at_post, delivered, failed, returned
$map['MY_CUSTOM_CODE'] = 'in_transit';
return $map;
} );
wcsp_tracking_category_labels
Prispôsobte zobrazovacie popisky pre každú kategóriu sledovania.
add_filter( 'wcsp_tracking_category_labels', function( $labels ) {
// $labels = array — category => translated label string
$labels['stored_at_post'] = 'Ready at your post office';
return $labels;
} );
wcsp_tracking_normalized_events
Filtrujte pole analyzovaných udalostí po normalizácii zo surowej odpovede API, pred uložením do cache v objednávke.
add_filter( 'wcsp_tracking_normalized_events', function( $events, $raw ) {
// $events = array — normalized events (newest first)
// $raw = array — raw decoded API response
return $events;
}, 10, 2 );
wcsp_tracking_progress_steps
Prispôsobte kroky zobrazené v 5-krokovom ukazovateli postupu na stránkach objednávok pre zákazníka.
add_filter( 'wcsp_tracking_progress_steps', function( $steps, $events, $order ) {
// $steps = array — ordered steps, each: ['id', 'label', 'active', 'date']
// $events = array — cached events
// $order = WC_Order
return $steps;
}, 10, 3 );
wcsp_tracking_email_ids
Ovládajte, ktoré ID e-mailov WooCommerce dostanú sekciu sledovania.
add_filter( 'wcsp_tracking_email_ids', function( $ids ) {
// Default: ['customer_processing_order', 'customer_completed_order', 'customer_on_hold_order']
$ids[] = 'customer_invoice';
return $ids;
} );
Referencia šablón
Plugin poskytuje dve PHP šablóny, ktoré je možné prepísať vo vašej téme. Prepísanie šablón sa riadi rovnakou konvenciou ako šablóny WooCommerce: skopírujte súbor do adresára vašej témy a upravte ho tam.
Cesta k prepisu šablóny
Skopírujte šablóny do adresára vašej témy pomocou tejto štruktúry:
your-theme/
└── woocommerce-slovenska-posta/
├── checkout-pickup-point-select.php
└── checkout-pickup-point-select-dialog.php
Plugin kontroluje prepisy témy pomocou locate_template() pred načítaním z vlastného adresára templates/.
Šablóny
checkout-pickup-point-select.php
Cesta v plugine: templates/checkout-pickup-point-select.php
Cesta k prepisu v téme: your-theme/woocommerce-slovenska-posta/checkout-pickup-point-select.php
Účel: Vykresľuje inline výber odberného miesta zobrazený pod spôsobom dopravy v pokladni. V predvolenej implementácii obsahuje tlačidlo „Vybrať odberné miesto" / „Zmeniť" a zobrazenie názvu aktuálne vybraného odberného miesta.
Dostupné premenné:
| Premenná | Typ | Popis | |
|---|---|---|---|
$selected_pickup_point | array | null | Aktuálne vybrané odberné miesto z WC session, alebo null ak nie je žiadne vybrané |
$shipping_method | WC_Shipping_Rate | Objekt aktuálnej sadzby dopravy |
Predvolený výstup:
<div class="wcsp-pickup-point-selector">
<button id="wcsp-pp-toggle" type="button" class="button">
Select Pickup Point
</button>
</div>
Po výbere odberného miesta sa text tlačidla zmení na názov odberného miesta s odkazom „Zmeniť".
checkout-pickup-point-select-dialog.php
Cesta v plugine: templates/checkout-pickup-point-select-dialog.php
Cesta k prepisu v téme: your-theme/woocommerce-slovenska-posta/checkout-pickup-point-select-dialog.php
Účel: Vykresľuje HTML štruktúru modálneho dialógu výberu odberného miesta. JavaScript inicializuje mapu, vyhľadávanie a interakciu v rámci tejto HTML štruktúry.
Dôležité: ID elementov a názvy tried v tejto šablóne sú referencované JavaScriptom. Ak ich vo svojom prepise premenujete, musíte tiež aktualizovať assets/js/wcsp-pp-checkout.js.
Kľúčové ID elementov používané JavaScriptom:
| ID elementu | Účel |
|---|---|
#wcsp-pp-dialog | Koreňový kontajner dialógu (cieľ jQuery UI Dialog) |
#wcsp-pp-search | Textové pole vyhľadávania |
#wcsp-pp-search-btn | Tlačidlo vyhľadávania |
#wcsp-pp-geolocation-btn | Tlačidlo geolokácie „Moja poloha" |
#wcsp-pp-results | Kontajner zoznamu výsledkov |
#wcsp-pp-map | Kontajner mapy OpenLayers |
#wcsp-pp-details | Panel podrobností vybraného odberného miesta |
#wcsp-pp-confirm-btn | Tlačidlo potvrdenia výberu |
#wcsp-pp-dialog-close | Tlačidlo zatvorenia dialógu |
Predvolená štruktúra:
<div id="wcsp-pp-dialog" style="display:none;">
<div class="wcsp-dialog-header">
<button id="wcsp-pp-dialog-close">×</button>
</div>
<div class="wcsp-dialog-body">
<div class="wcsp-dialog-left">
<div class="wcsp-search-bar">
<input id="wcsp-pp-search" type="text" placeholder="Search..." />
<button id="wcsp-pp-search-btn">Search</button>
<button id="wcsp-pp-geolocation-btn">My Location</button>
</div>
<div id="wcsp-pp-results"></div>
</div>
<div class="wcsp-dialog-right">
<div id="wcsp-pp-map"></div>
<div id="wcsp-pp-details"></div>
</div>
</div>
</div>
Štýly
Frontendové štýly pluginu sú načítané zo súboru assets/css/wcsp-pp-checkout.css. Tento súbor je zaradený do frontu na stránkach pokladne a nemôže byť prepísaný cez systém šablón. Na prispôsobenie štýlov:
- Pridajte CSS pravidlá do vašej témy, ktoré prepíšu triedy pluginu.
- V prípade potreby použite špecificitu alebo
!importantna prepísanie predvolených nastavení pluginu.
Kľúčové CSS triedy:
| Trieda | Účel |
|---|---|
.wcsp-pickup-point-selector | Obal okolo inline tlačidla výberu |
.wcsp-dialog-left | Ľavý panel dialógu (vyhľadávanie + výsledky) |
.wcsp-dialog-right | Pravý panel (mapa + podrobnosti) |
.wcsp-result-item | Jednotlivý výsledok v zozname vyhľadávania |
.wcsp-result-item.selected | Aktuálne vybraný výsledok |
.wcsp-weight-warning | Varovný odznak o hmotnosti pri výsledku |
.wcsp-result-item.weight-exceeded | Zosivená položka pri prekročení hmotnostného limitu |
.wcsp-shipping-fields-hidden | Použité na skrytie polí doručovacej adresy |