Test Failed
Push — master ( dab9be...86623b )
by Devin
05:07
created

plugin-compatibility.php ➔ give_tickera_qr_compatibility()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
nc 2
nop 0
dl 0
loc 5
rs 10
c 0
b 0
f 0
1
<?php
2
/**
3
 * Plugin Compatibility
4
 *
5
 * Functions for compatibility with other plugins.
6
 *
7
 * @package     Give
8
 * @subpackage  Functions/Compatibility
9
 * @copyright   Copyright (c) 2016, GiveWP
10
 * @license     https://opensource.org/licenses/gpl-license GNU Public License
11
 * @since       1.4
12
 */
13
14
15
/**
16
 * If Tickera is active then allow TCPDF calls in HTML.
17
 *
18
 * TCPDF defines this as false by default as a security precaution. Because Tickera uses GiveWP's composer autoloaded
19
 * TCPDF the constant is false. Therefore, we will set it to true so the QR code feature works as expected.
20
 *
21
 * GitHub Issue:
22
 * See: https://tcpdf.org/examples/example_049/
23
 *
24
 * @since 2.5.4
25
 *
26
 */
27
function give_tickera_qr_compatibility() {
28
	if ( is_plugin_active( 'tickera-event-ticketing-system/tickera.php' ) ) {
29
		define( 'K_TCPDF_CALLS_IN_HTML', true );
30
	}
31
}
32
33
add_action( 'plugins_loaded', 'give_tickera_qr_compatibility' );
34
35
/**
36
 * Disables the mandrill_nl2br filter while sending Give emails.
37
 *
38
 * @return void
39
 * @since 1.4
40
 */
41
function give_disable_mandrill_nl2br() {
42
	add_filter( 'mandrill_nl2br', '__return_false' );
43
}
44
45
add_action( 'give_email_send_before', 'give_disable_mandrill_nl2br' );
46
47
48
/**
49
 * This function will clear the Yoast SEO sitemap cache on update of settings
50
 *
51
 * @return void
52
 * @since 1.8.9
53
 *
54
 */
55
function give_clear_seo_sitemap_cache_on_settings_change() {
56
	// Load required file if the fn 'is_plugin_active' doesn't exists.
57
	if ( ! function_exists( 'is_plugin_active' ) ) {
58
		require_once ABSPATH . 'wp-admin/includes/plugin.php';
59
	}
60
61
	if ( ( is_plugin_active( 'wordpress-seo/wp-seo.php' )
62
	       || is_plugin_active( 'wordpress-seo-premium/wp-seo-premium.php' ) )
63
	     && class_exists( 'WPSEO_Sitemaps_Cache' )
64
	) {
65
66
		$forms_singular_option = give_get_option( 'forms_singular' );
67
		$forms_archive_option  = give_get_option( 'forms_singular' );
68
69
		// If there is change detected for Single Form View and Form Archives options then proceed.
70
		if (
71
			( isset( $_POST['forms_singular'] ) && $_POST['forms_singular'] !== $forms_singular_option ) ||
72
			( isset( $_POST['forms_archives'] ) && $_POST['forms_archives'] !== $forms_archive_option )
73
		) {
74
			// If Yoast SEO or Yoast SEO Premium plugin exists, then update seo sitemap cache.
75
			$yoast_sitemaps_cache = new WPSEO_Sitemaps_Cache();
76
			if ( method_exists( $yoast_sitemaps_cache, 'clear' ) ) {
77
				WPSEO_Sitemaps_Cache::clear();
78
			}
79
		}
80
	}
81
}
82
83
add_action( 'give-settings_save_display', 'give_clear_seo_sitemap_cache_on_settings_change' );
84
85
/**
86
 * This is support for the plugin Elementor. This function
87
 * disables the Give Shortcodes button on the Elementor's
88
 * editor page.
89
 *
90
 * See link: https://github.com/impress-org/give/issues/3171#issuecomment-387471355
91
 *
92
 * @return boolean
93
 * @since 2.1.3
94
 *
95
 */
96
function give_elementor_hide_shortcodes_button() {
97
98
	/**
99
	 * Is the plugin: Elementor activated?
100
	 */
101
	if ( is_plugin_active( 'elementor/elementor.php' ) ) {
102
103
		/**
104
		 * Check user is on the Elementor's editor page, then hide Give Shortcodes Button.
105
		 */
106
		if ( isset( $_GET['action'] ) && 'elementor' === give_clean( $_GET['action'] ) ) {
107
			return false;
108
		}
109
	}
110
111
	return true;
112
}
113
114
add_filter( 'give_shortcode_button_condition', 'give_elementor_hide_shortcodes_button', 11 );
115