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 / classes / Exporter / AllLanguagesHooks.php
woocommerce-multilingual / classes / Exporter Last commit date
AllLanguagesHooks.php 1 month ago AttributeHeadersHooks.php 1 month 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