PATH:
home
/
letacommog
/
laindinois
/
wp-content
/
plugins
/
woocommerce-bookings
/
includes
<?php if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Handles product booking transitions */ class WC_Product_Booking_Manager { /** * Constructor sets up actions */ public function __construct() { add_action( 'wp_trash_post', array( __CLASS__, 'pre_trash_delete_handler' ), 10, 1 ); add_action( 'before_delete_post', array( __CLASS__, 'pre_trash_delete_handler' ), 10, 1 ); } /** * Filters whether a bookable product deletion should take place. * If there are Bookings linked to it, do not allow deletion. * * @since 1.10.9 * * @param int $post_id Post ID. */ public static function pre_trash_delete_handler( $post_id ) { if ( ! $post_id ) { return; } $post_type = get_post_type( $post_id ); if ( 'product' === $post_type ) { $product = wc_get_product( $post_id ); // TODO: Figure the most performant way. if ( 'booking' === $product->get_type() ) { $bookings = WC_Bookings_Controller::get_bookings_for_objects( $post_id ); if ( 0 !== count( $bookings ) ) { $message = __( 'You cannot trash/delete a bookable product that has Bookings associated with it.', 'woocommerce-bookings' ); $message .= '<br/>'; $message .= '<a href="https://docs.woocommerce.com/document/bookings-faq/">'; $message .= __( 'Please visit our Bookings FAQs for more information', 'woocommerce-bookings' ); $message .= '</a>.'; wp_die( $message ); } } } if ( 'bookable_resource' === $post_type ) { $resources = WC_Bookings_Controller::get_bookings_for_objects( $post_id ); if ( 0 !== count( $resources ) ) { $message = __( 'You cannot trash/delete a resource that has Bookings associated with it.', 'woocommerce-bookings' ); $message .= '<br/>'; $message .= '<a href="https://docs.woocommerce.com/document/bookings-faq/">'; $message .= __( 'Please visit our Bookings FAQs for more information', 'woocommerce-bookings' ); $message .= '</a>.'; wp_die( $message ); } } return; } } new WC_Product_Booking_Manager();
[+]
..
[-] class-wc-bookings-wc-ajax.php
[edit]
[-] class-wc-booking-coupon.php
[edit]
[+]
emails
[-] class-wc-bookings-controller.php
[edit]
[-] class-wc-booking-cron-manager.php
[edit]
[+]
compatibility
[-] class-wc-product-booking-rule-manager.php
[edit]
[+]
addons
[-] class-wc-product-class-loader.php
[edit]
[-] class-wc-booking-checkout-manager.php
[edit]
[+]
admin
[+]
data-stores
[-] class-wc-booking-order-manager.php
[edit]
[-] class-wc-booking-email-manager.php
[edit]
[+]
data-objects
[-] class-wc-booking-privacy.php
[edit]
[-] class-wc-booking-form-handler.php
[edit]
[+]
gateways
[-] wc-bookings-functions.php
[edit]
[-] class-wc-product-booking-manager.php
[edit]
[+]
integrations
[+]
booking-form
[-] class-wc-bookings-ics-exporter.php
[edit]
[-] class-wc-booking-cart-manager.php
[edit]