1. Home
  2. Product Delivery Date Pro for WooCommerce
  3. Hooks: Action and Filter reference

Hooks: Action and Filter reference

The following is a list of all hooks present in the plugin. It is intended to guide developers who want to extend the functionality of the Product Delivery Date Pro for WooCommerce plugin.

 

1. Excluding Minimum Hours for Disabled Days 
add_filter( 'prdd_exclude_minimum_hours_for_disable_days', 'prdd_exclude_minimum_hours_for_disable_days_function', 10, 1 );
/**
 * @param string $is_excluded yes - to exclude the disabled days | no - to not exclude the days
 */
function prdd_exclude_minimum_hours_for_disable_days_function( $is_excluded ) {
    return 'yes';
}
2. Calculate the next available date from the holiday and non-working days setting.
prdd_add_days_to_holidays_function:

Loop through the existing holiday array and add one day to the holiday date if the cut-off time has passed.

Usage
add_filter( 'prdd_add_days_to_holidays', 'prdd_add_days_to_holidays_function', 10, 2 );
/**
 * Checks if the next day is a holiday or not & disables it if store owner doesn't want to count cut-off time on holidays.
 * 
 * @param array  $disabled_days Existing disabled dates array.
 * @param array  $holiday_array Existing holidays dates array.
 */
function prdd_add_days_to_holidays_function( $disabled_days, $holiday_array ) {

if( !empty( $holiday_array ) ){

foreach( $holiday_array as $h ){

$h_date = date( 'j-n-Y', strtotime($h) );

if( in_array( $h_date, $holiday_array )){

$blocked_holiday = date( 'n-j-Y', strtotime( $h ) + 86400 );

$disabled_days[] = $blocked_holiday;
}
}
}
return $disabled_days;
}

3. prdd_add_days_to_disable_days_function:

Loop through the existing recurring array and check if the current date is disabled, then add one day to the disable date array if the cut-off time is passed.
Usage
add_filter( 'prdd_add_days_to_disable_days', 'prdd_add_days_to_disable_days_function', 10, 3 );

/**
 * Checks, if the next day is working or not & disables it if store owner doesn't want to count cut-off time on non-working days.
 * 
 * @param array  $disabled_days Existing disabled date array.
 * @param array  $recurring_date Existing recurring date array.
 * @param string $current_time Timestamp of current time.
 */
function prdd_add_days_to_disable_days_function( $disabled_days, $recurring_date, $current_time ) {

if( isset( $recurring_date ) && !empty( $recurring_date ) ) {
$daynum = date("N", time());
$day = 1;
$day_limit = 6;
for( $d = $daynum; $d <= $day_limit; $d++ ) {
if ( $recurring_date["prdd_weekday_".$d] == "" ){
if( $d < 7 ){
$disabled_days[] = date( 'n-j-Y', $current_time + ( 86400 * $day ) );
$day++;
}
else{
break;
}
}
if( $d == 6 ){
$d = 0;
$day_limit = $daynum - 1;
}
}
return $disabled_days;
}
}

4. To show the time slot as available until its end time

add_filter( 'prdd_endtime_for_timeslot', 'endtime_for_timeslot', 10, 1 );
/**
 * @param string $endtime_for_timeslot True to show time slot till end.
 */
function endtime_for_timeslot( $endtime_for_timeslot ) {
    return true;
}

add_filter( 'prdd_endtime_for_timeslot_starting_date', 'endtime_for_timeslot_starting_date', 10, 1 );
/**
 * @param string $endtime_for_timeslot True to show time slot till end.
 */
function endtime_for_timeslot_starting_date( $endtime_for_timeslot_starting_date ) {
    return true;
}

5. To change the edit deliveries button text in the cart, checkout, and my-account pages.

add_filter( 'prdd_edit_deliveries_button_text', 'prdd_edit_deliveries_button_text_callback' );
/**
 * change Edit Deliveries button text in the cart, checkout, and my-account pages.
 */
function prdd_edit_deliveries_button_text_callback(){
    return "New button text";
}

6. Change the edit deliveries in the edit modal title text in the cart, checkout, and my-account pages.

add_filter( 'prdd_edit_deliveries_modal_title', 'prdd_edit_deliveries_modal_title_callback' );
/**
 * Change Edit Deliveries of edit modal title text in the cart, checkout, and my-account pages.
 */
function prdd_edit_deliveries_modal_title_callback(){
return "New modal title";
}

7. To change the button text in the edit modal of the cart, checkout, and my-account pages.

add_filter( 'prdd_confirm_deliveries_button_text', 'prdd_confirm_deliveries_button_text_callback' );
/**
 * Change Edit Deliveries button text of edit modal of the cart, checkout, and my-account pages.
 */
function prdd_confirm_deliveries_button_text_callback() {
return "Save Pickup Details";
}

8. To change the ‘Cancel’ button text in the edit modal popup in the cart, checkout, and my-account pages.

add_filter( 'prdd_edit_popup_cancel_button_text', 'prdd_edit_popup_cancel_button_text_callback' );
/**
 * change the Cancel button of Edit Deliveries popup text in the cart, checkout, and my-account pages.
 */
function prdd_edit_popup_cancel_button_text_callback(){
    return "Close";
}

9. To hide the stock count on the product page.

add_filter('prdd_hide_stock_count', 'prdd_hide_stock_count_callback');
/**
 * Hide stock count digit on the product page.
 */
function prdd_hide_stock_count_callback(){
return 'yes';
}

10. To not create any order when the delivery date is changed from the edit-order page.

add_filter('prdd_create_new_order_on_date_reschedule', 'prdd_create_new_order_on_date_reschedule_callback');
/**
 * It will not allow creating an order when we reschedule the order by changing its delivery date.
 */
function prdd_create_new_order_on_date_reschedule_callback(){
return "no";
}

11. To change the text on the product page if the same date for all products option is enabled.

add_filter('prdd_duplicates_date_note_text', 'prdd_duplicates_date_note_text_callback');
/**
 * It will change the text which is displayed on the product page.
 */
function prdd_duplicates_date_note_text_callback(){
return __( 'Delivery date has been populated from the products added in cart previously. Selecting a delivery date here would change the delivery date of all the other products.', 'woocommerce-prdd' );
}

12. To change the time of the Google event in the calendar while adding an event.

add_filter( 'prdd_default_time_slot_for_event', 'prdd_default_time_slot_for_event_callback', 10, 1 );
function prdd_default_time_slot_for_event_callback( $time_array ) {
$time_array = array( 'start_hour' => 11, 'start_min' => 30, 'end_hour' => 13, 'end_min' => 30 );
return $time_array;
}

13. To change the validation error message of the delivery date

add_filter( 'prdd_date_validation_message', 'prdd_date_validation_message_callback', 10, 2 );

function prdd_date_validation_message_callback( $delivery_date_validation_message, $delivery_date_label ) {
return "<b>" . $delivery_date_label . "</b>" . " is a required field. Please select it.";
}

14. To change the validation error message of the delivery time

add_filter( 'prdd_time_validation_message', 'prdd_time_validation_message_callback', 10, 2 );

function prdd_time_validation_message_callback( $delivery_time_validation_message, $delivery_time_label ) {
return "<b>" . $delivery_time_label . "</b>" . " is a required field. Please select it.";
}
Was this article helpful to you? Yes No

How can we help?