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 / compatibility / WpSeo / class-wcml-wpseo.php
woocommerce-multilingual / compatibility / WpSeo Last commit date
Factory.php 4 weeks ago class-wcml-wpseo.php 4 weeks ago
class-wcml-wpseo.php
70 lines
1 <?php
2
3 class WCML_WPSEO implements \IWPML_Action {
4
5 private $updated_post_id;
6
7 public function add_hooks() {
8
9 add_filter( 'wcml_product_content_label', [ $this, 'wpseo_custom_field_label' ], 10, 2 );
10
11 if ( 'all' === WPML\FP\Obj::prop( 'clang', $_GET ) ) {
12 add_filter( 'wpseo_robots_array', [ $this, 'noindex_all_comments_page' ], 10, 1 );
13 }
14
15 if ( defined( 'WPSEO_VERSION' ) && defined( 'WPSEO_PATH' ) && isset( $_GET['page'] ) && \WCML\Utilities\AdminUrl::PAGE_WPML_WCML == $_GET['page'] && isset( $_GET['tab'] ) && \WCML\Utilities\AdminUrl::TAB_PRODUCTS == $_GET['tab'] ) {
16 if ( version_compare( WPSEO_VERSION, '3', '<' ) ) {
17 require_once WPSEO_PATH . 'admin/class-metabox.php';
18 } elseif ( file_exists( WPSEO_PATH . 'admin/metabox/class-metabox.php' ) ) {
19 require_once WPSEO_PATH . 'admin/metabox/class-metabox.php';
20 }
21 }
22
23 add_action( 'post_updated', [ $this, 'set_updated_post_id' ] );
24 add_action( 'wpseo_premium_post_redirect_slug_change', [ $this, 'wpseo_premium_post_redirect_slug_change' ] );
25 }
26
27 public function wpseo_custom_field_label( $field, $product_id ) {
28 global $woocommerce_wpml, $wpseo_metabox;
29
30 $yoast_seo_fields = [ '_yoast_wpseo_focuskw', '_yoast_wpseo_title', '_yoast_wpseo_metadesc' ];
31
32 if ( ! is_array( maybe_unserialize( get_post_meta( $product_id, $field, true ) ) ) ) {
33
34 if ( ! is_null( $wpseo_metabox ) && in_array( $field, $yoast_seo_fields ) ) {
35
36 $wpseo_metabox_values = $wpseo_metabox->get_meta_boxes( 'product' );
37
38 $label = $wpseo_metabox_values[ str_replace( '_yoast_wpseo_', '', $field ) ]['title'];
39
40 return $label;
41 }
42 }
43
44 return $field;
45 }
46
47 public function set_updated_post_id( $post_id ) {
48 $this->updated_post_id = $post_id;
49 }
50
51 public function wpseo_premium_post_redirect_slug_change( $slug_changed_flag ) {
52
53 if ( null !== $this->updated_post_id && get_post_type( $this->updated_post_id ) === 'product_variation' ) {
54 return true;
55 }
56
57 return $slug_changed_flag;
58 }
59
60 public function noindex_all_comments_page( $robotsArray ) {
61 if ( isset( $robotsArray['index'] ) ) {
62 unset( $robotsArray['index'] );
63 }
64 $robotsArray['noindex'] = 'noindex';
65 return $robotsArray;
66 }
67
68 }
69
70