Skip to content

Instantly share code, notes, and snippets.

@MarkKevin08
Created June 8, 2023 02:49
Show Gist options
  • Save MarkKevin08/4b93aa5bd1101d98bdea8bf4fdc34a6a to your computer and use it in GitHub Desktop.
Save MarkKevin08/4b93aa5bd1101d98bdea8bf4fdc34a6a to your computer and use it in GitHub Desktop.
WC Vendors - Prevent vendor edit booking start date and end date
/**
* Prevent vendor edit booking start date and end date
*/
function wcv_prevent_vendor_edit_booking_start_date_and_end_date() {
$pagename = get_query_var( 'pagename' );
$object = get_query_var( 'object' );
$action = get_query_var( 'action' );
if ( ! is_user_logged_in() ) {
return;
}
if ( 'edit' !== $action || 'wc_booking' !== $object || 'dashboard' !== $pagename ) {
return;
}
?>
<script>
jQuery(document).ready(function ($) {
if ( $('#_wcv-save_wc_booking').length <=0 ) {
return;
}
let $bookingStartDate = $('#booking_start_date');
let $bookingEndDate = $('#booking_end_date');
let $post_id = $('#post_id')
if ($bookingStartDate.length && $bookingEndDate.length) {
let $bookingStartDateNew = $('<input type="hidden" name="booking_start_date" id="booking_start_date_copy" value="' + $bookingStartDate.val() + '">');
let $bookingEndDateNew = $('<input type="hidden" name="booking_end_date" id="booking_end_date_copy" value="' + $bookingEndDate.val() + '">');
$bookingStartDate.after($bookingStartDateNew);
$bookingEndDate.after($bookingEndDateNew);
$bookingStartDate.attr('readonly', 'readonly')
$bookingEndDate.attr('readonly', 'readonly');
$bookingStartDate.attr('disabled', 'disabled');
$bookingEndDate.attr('disabled', 'disabled');
}
});
</script>
<?php
}
add_action( 'wp_footer', 'wcv_prevent_vendor_edit_booking_start_date_and_end_date' );
/**
* Prevent vendor update booking start date and end date
*
* @param int $meta_id ID of updated metadata entry.
* @param int $object_id Object ID.
* @param string $meta_key Meta key.
*
* @return bool
*/
function wcv_prevent_update_meta_booking_start_date_and_end_date( $check, $meta_id, $object_id, $meta_key ) {
if ( is_admin() ) {
return $check;
}
if ( 'wc_booking' !== get_post_type( $object_id ) ) {
return $check;
}
if ( ! isset( $_POST['_wcv-save_wc_booking'] ) ) {
return $check;
}
if ( '_booking_start' === $meta_key || '_booking_end' === $meta_key ) {
return false;
}
}
add_filter( 'update_post_metadata', 'wcv_prevent_update_meta_booking_start_date_and_end_date', 10, 4 );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment