PluginProbe ʕ •ᴥ•ʔ
WPML Multilingual & Multicurrency for WooCommerce / 5.5.7
WPML Multilingual & Multicurrency for WooCommerce v5.5.7
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 / classes / Exporter / AllLanguagesHooks.php
woocommerce-multilingual / classes / Exporter Last commit date
AllLanguagesHooks.php 1 week ago AttributeHeadersHooks.php 1 week ago
AllLanguagesHooks.php
51 lines
1 <?php
2
3 namespace WCML\Exporter;
4
5 use WCML\Terms\SuspendWpmlFiltersFactory as SuspendTermsFilterFactory;
6 use WCML\Utilities\Suspend\PostsQueryFiltersFactory as SuspendPostsQueryFiltersFactory;
7 use WPML\API\Sanitize;
8 use WPML\FP\Obj;
9 use WPML\LIB\WP\Hooks;
10 use function WPML\FP\spreadArgs;
11 use function WPML\FP\tap;
12
13 class AllLanguagesHooks implements \IWPML_Backend_Action, \IWPML_DIC_Action {
14
15 const KEY_EXPORT_ALL_LANGUAGES = 'wpml_export_all_languages';
16
17 private $sitepress;
18
19 public function __construct( \SitePress $sitepress ) {
20 $this->sitepress = $sitepress;
21 }
22
23 public function add_hooks() {
24 Hooks::onAction( 'woocommerce_product_export_row' )
25 ->then( [ $this, 'addLanguageField' ] );
26
27 Hooks::onFilter( 'woocommerce_product_export_product_query_args' )
28 ->then( spreadArgs( tap( [ $this, 'suspendWpmlLanguageFilters' ] ) ) );
29 }
30
31 public function addLanguageField() {
32 if ( 'all' === $this->sitepress->get_current_language() ) {
33 echo '<input type="hidden" name="' . self::KEY_EXPORT_ALL_LANGUAGES . '" value="1" />';
34 }
35 }
36
37 public function suspendWpmlLanguageFilters() {
38 if ( $this->isExportingAllLanguages() ) {
39 SuspendPostsQueryFiltersFactory::create();
40 SuspendTermsFilterFactory::create();
41 }
42 }
43
44 private function isExportingAllLanguages() {
45 $formQueryString = Sanitize::string( (string) Obj::prop( 'form', $_POST ) );
46 wp_parse_str( $formQueryString, $queryArgs );
47
48 return isset( $queryArgs[ self::KEY_EXPORT_ALL_LANGUAGES ] );
49 }
50 }
51