summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/jetpack/3rd-party/wpml.php')
-rw-r--r--plugins/jetpack/3rd-party/wpml.php62
1 files changed, 62 insertions, 0 deletions
diff --git a/plugins/jetpack/3rd-party/wpml.php b/plugins/jetpack/3rd-party/wpml.php
new file mode 100644
index 00000000..219cb37d
--- /dev/null
+++ b/plugins/jetpack/3rd-party/wpml.php
@@ -0,0 +1,62 @@
+<?php
+/**
+ * Only load these if WPML plugin is installed and active.
+ */
+
+/**
+ * Load routines only if WPML is loaded.
+ *
+ * @since 4.4.0
+ */
+function wpml_jetpack_init() {
+ add_action( 'jetpack_widget_get_top_posts', 'wpml_jetpack_widget_get_top_posts', 10, 3 );
+ add_filter( 'grunion_contact_form_field_html', 'grunion_contact_form_field_html_filter', 10, 3 );
+}
+add_action( 'wpml_loaded', 'wpml_jetpack_init' );
+
+/**
+ * Filter the Top Posts and Pages by language.
+ *
+ * @param array $posts Array of the most popular posts.
+ * @param array $post_ids Array of Post IDs.
+ * @param string $count Number of Top Posts we want to display.
+ *
+ * @return array
+ */
+function wpml_jetpack_widget_get_top_posts( $posts, $post_ids, $count ) {
+ global $sitepress;
+
+ foreach ( $posts as $k => $post ) {
+ $lang_information = wpml_get_language_information( $post['post_id'] );
+ if ( ! is_wp_error( $lang_information ) ) {
+ $post_language = substr( $lang_information['locale'], 0, 2 );
+ if ( $post_language !== $sitepress->get_current_language() ) {
+ unset( $posts[ $k ] );
+ }
+ }
+ }
+
+ return $posts;
+}
+
+/**
+ * Filter the HTML of the Contact Form and output the one requested by language.
+ *
+ * @param string $r Contact Form HTML output.
+ * @param string $field_label Field label.
+ * @param int|null $id Post ID.
+ *
+ * @return string
+ */
+function grunion_contact_form_field_html_filter( $r, $field_label, $id ){
+ global $sitepress;
+
+ if ( function_exists( 'icl_translate' ) ) {
+ if ( $sitepress->get_current_language() !== $sitepress->get_default_language() ) {
+ $label_translation = icl_translate( 'jetpack ', $field_label . '_label', $field_label );
+ $r = str_replace( $field_label, $label_translation, $r );
+ }
+ }
+
+ return $r;
+}