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 / SharedHooks.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
SharedHooks.php
68 lines
1 <?php
2
3 namespace WCML\Compatibility\WcBookings;
4
5 use WC_Product;
6 use WCML_Bookings;
7
8 class SharedHooks implements \IWPML_Action {
9
10 private $wpdb;
11
12 public function __construct( \wpdb $wpdb ) {
13 $this->wpdb = $wpdb;
14 }
15
16 public function add_hooks() {
17 add_action( 'init', [ __CLASS__, 'load_assets' ] );
18 add_filter( 'wcml_multi_currency_ajax_actions', [ __CLASS__, 'wcml_multi_currency_is_ajax' ] );
19
20 $this->clear_transient_fields();
21 }
22
23 public static function load_assets( $externalProductType = false ) {
24 global $pagenow;
25
26 $productId = $pagenow == 'post.php' && isset( $_GET['post'] ) ? (int) $_GET['post'] : false;
27
28 if ( $productId && get_post_type( $productId ) === 'product' ) {
29 $product = wc_get_product( $productId );
30 $productType = $product->get_type();
31
32 if ( ( self::isBooking( $product ) || $productType === $externalProductType ) || $pagenow == 'post-new.php' ) {
33 wp_register_style( 'wcml-bookings-css', WCML_PLUGIN_URL . '/compatibility/res/css/wcml-bookings.css', [], WCML_VERSION );
34 wp_enqueue_style( 'wcml-bookings-css' );
35
36 wp_register_script( 'wcml-bookings-js', WCML_PLUGIN_URL . '/compatibility/res/js/wcml-bookings.js', [ 'jquery' ], WCML_VERSION, true );
37 wp_enqueue_script( 'wcml-bookings-js' );
38 }
39 }
40 }
41
42 public static function wcml_multi_currency_is_ajax( $actions ) {
43 $actions[] = 'wc_bookings_calculate_costs';
44
45 return $actions;
46 }
47
48 public function clear_transient_fields() {
49 if ( isset( $_GET['post_type'] ) && $_GET['post_type'] == WCML_Bookings::POST_TYPE && isset( $_GET['page'] ) && $_GET['page'] == 'booking_calendar' ) {
50
51 $this->wpdb->query(
52 "
53 DELETE FROM {$this->wpdb->options}
54 WHERE option_name LIKE '%book_dr_%'
55 "
56 );
57 }
58 }
59
60 public static function isBooking( $product ) {
61 if ( ! $product instanceof WC_Product ) {
62 $product = wc_get_product( $product );
63 }
64
65 return $product && $product->get_type() === 'booking';
66 }
67 }
68