PluginProbe ʕ •ᴥ•ʔ
WPML Multilingual & Multicurrency for WooCommerce / trunk
WPML Multilingual & Multicurrency for WooCommerce vtrunk
5.5.7 5.3.8 5.3.9 5.4.3 5.4.4 5.4.5 5.5.1 5.5.1.1 5.5.2.2 5.5.2.3 5.5.3 5.5.3.1 5.5.4 5.5.5 5.5.6 trunk 0.9 1.0 1.1 1.2 1.3 1.4 1.5 2.0 2.2 2.3 2.3.1 2.3.2 3.0 3.0.1 3.1 3.2 3.2.1 3.2.2 3.3 3.3.1 3.3.2 3.3.3 3.3.4 3.4 3.4.1 3.4.2 3.4.3 3.5 3.5.1 3.5.2 3.5.3 3.5.4 3.5.5 3.6 3.6.1 3.6.10 3.6.11 3.6.2 3.6.3 3.6.4 3.6.5 3.6.5.1 3.6.6 3.6.7 3.6.8 3.6.9 3.7 3.7.1 3.7.10 3.7.11 3.7.12 3.7.13 3.7.14 3.7.15 3.7.16 3.7.2 3.7.3 3.7.4 3.7.5 3.7.6 3.7.7 3.7.8 3.7.9 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.8.6 3.9.0 3.9.1 3.9.1.1 3.9.2 3.9.3 3.9.4 3.9.5 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.10.4 4.11.2 4.11.3.2 4.11.5 4.11.6 4.12.1 4.12.4 4.12.5 4.12.6 4.2.0 4.2.0.1 4.2.1 4.2.1.1 4.2.10 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.7.1 4.2.8 4.2.8.1 4.2.9 4.3.0 4.3.1 4.3.2 4.3.2.1 4.3.3 4.3.4 4.3.5 4.3.6 4.3.7 4.4.0 4.4.1 4.4.2 4.4.2.1 4.5.0 4.6.0 4.6.1 4.6.2 4.6.2.1 4.6.3 4.6.5 4.6.6 4.6.7 4.7.0 4.7.1 4.7.2 4.7.3 4.7.4 4.7.5 4.7.6 4.7.7 4.7.8 4.7.9 4.8.0 4.9.0 4.9.1 5.0.1 5.0.2 5.1.1 5.1.2 5.1.3 5.2.0 5.2.1 5.3.2 5.3.3.1 5.3.4 5.3.5 5.3.6 5.3.7
woocommerce-multilingual / compatibility / WcBookings / Slots.php
woocommerce-multilingual / compatibility / WcBookings Last commit date
Templates 1 month ago TranslationEditor 1 month ago Calendar.php 1 year ago Emails.php 1 month ago Factory.php 1 month ago MulticurrencyHooks.php 1 month ago Prices.php 1 month ago SharedHooks.php 1 month ago Slots.php 1 month ago class-wcml-accommodation-bookings.php 1 month ago class-wcml-bookings.php 1 month ago
Slots.php
35 lines
1 <?php
2
3 namespace WCML\Compatibility\WcBookings;
4
5 use function WPML\FP\spreadArgs;
6 use WPML\FP\Obj;
7 use WPML\LIB\WP\Hooks;
8
9 class Slots implements \IWPML_Action {
10
11 public function add_hooks() {
12 Hooks::onAction( 'woocommerce_after_product_object_save' )
13 ->then( spreadArgs( [ $this, 'deleteTranslationsSlotsTransients' ] ) );
14 }
15
16 public function deleteTranslationsSlotsTransients( $product ) {
17 if ( ! $product instanceof \WC_Product_Booking ) {
18 return;
19 }
20 $productId = (int) $product->get_id();
21 $type = apply_filters( 'wpml_element_type', get_post_type( $productId ) );
22 $trid = apply_filters( 'wpml_element_trid', false, $productId, $type );
23 $translations = apply_filters( 'wpml_get_element_translations', [], $trid, $type );
24
25 wpml_collect( $translations )
26 ->filter( function( $translation ) use ( $productId ) {
27 return (int) Obj::prop( 'element_id', $translation ) !== $productId;
28 } )
29 ->map( function( $translation ) {
30 \WC_Bookings_Cache::delete_booking_slots_transient( $translation->element_id );
31 } );
32 }
33
34 }
35