Плъгинът BOX NOW за WooCommerce предоставя филтри (filters) и действия (actions) за персонализиране, без да се променя кодът на плъгина.
Поставяйте примерите във functions.php на дъщерна тема или в собствен плъгин.
Съвет: филтърът винаги връща стойност; действието само изпълнява код.
Филтри
boxnow_shipping_cost
Променя цената за доставка на BOX NOW, показвана на клиента.
- Параметри:
$fee(float),$package(пакетът на WooCommerce),$result(данни от API),$boxnowoptions(настройки) - Връща:
$fee
add_filter( 'boxnow_shipping_cost', function ( $fee, $package, $result, $options ) {
// Пример: безплатна доставка над 100 лв.
if ( $package['contents_cost'] >= 100 ) {
return 0;
}
return $fee;
}, 10, 4 );
boxnow_delivery_request_payload
Променя данните преди изпращане на заявка за доставка (създаване на пратка) към API на BOX NOW.
- Параметри:
$data(заявката към API),$order(WC_Order) - Връща:
$data
add_filter( 'boxnow_delivery_request_payload', function ( $data, $order ) {
$data['comments'] = 'Поръчка #' . $order->get_order_number();
return $data;
}, 10, 2 );
boxnow_receiver_address_validation
Позволява собствена валидация на данните на получателя.
- Параметри:
$response(масив, напр.['valid' => true, 'msg' => '']),$data - Връща:
$response
add_filter( 'boxnow_receiver_address_validation', function ( $response, $data ) {
if ( empty( $data['phone'] ) ) {
return array( 'valid' => false, 'msg' => 'Телефонът е задължителен.' );
}
return $response;
}, 10, 2 );
boxnow_tracking_url
Променя основния URL за проследяване на пратката.
- Параметри:
$base(текст — базовият URL) - Връща:
$base
add_filter( 'boxnow_tracking_url', function ( $base ) {
return 'https://boxnow.bg/track/';
} );
boxnow_geolocation
Включва/изключва геолокацията (намиране на най-близкия автомат по местоположение).
- Параметри:
$enabled(bool) - Връща: bool
add_filter( 'boxnow_geolocation', '__return_false' );
boxnow_local_storage
Включва/изключва запомнянето на избрания автомат в браузъра на клиента (localStorage).
- Параметри:
$enabled(bool) - Връща: bool
add_filter( 'boxnow_local_storage', '__return_false' );
boxnow_mobile_map_ux
Управлява поведението на картата на мобилни устройства (при false се връща стандартното плъзгане с един пръст).
- Параметри:
$enabled(bool, по подразбиранеtrue) - Връща: bool
add_filter( 'boxnow_mobile_map_ux', '__return_false' );
Действия
boxnow_delivery_request_response
Изпълнява се след отговора на заявката за доставка (създаване на пратка).
- Параметри:
$response(отговор от API),$order(WC_Order)
add_action( 'boxnow_delivery_request_response', function ( $response, $order ) {
// Пример: запиши референтния номер, изпрати известие и т.н.
error_log( 'BOX NOW отговор за поръчка #' . $order->get_order_number() );
}, 10, 2 );
Вижте продукта, условията за поддръжка и актуалната цена.
Към продукта