/** * wpcodebook_translate. * * @see https://wpcodebook.com/snippets/wpml-polylang-translation-shortcode/ */ add_shortcode( 'wpcodebook_translate', function ( $atts, $content = '' ) { // E.g.: `[wpcodebook_translate lang="EN,DE" lang_text="Text for EN & DE" not_lang_text="Text for other languages"]` if ( isset( $atts['lang_text'] ) && isset( $atts['not_lang_text'] ) && ! empty( $atts['lang'] ) ) { return ( ! defined( 'ICL_LANGUAGE_CODE' ) || ! in_array( strtolower( ICL_LANGUAGE_CODE ), array_map( 'trim', explode( ',', strtolower( $atts['lang'] ) ) ) ) ) ? $atts['not_lang_text'] : $atts['lang_text']; } // E.g.: `[wpcodebook_translate lang="EN,DE"]Text for EN & DE[/wpcodebook_translate][wpcodebook_translate not_lang="EN,DE"]Text for other languages[/wpcodebook_translate]` return ( ( ! empty( $atts['lang'] ) && ( ! defined( 'ICL_LANGUAGE_CODE' ) || ! in_array( strtolower( ICL_LANGUAGE_CODE ), array_map( 'trim', explode( ',', strtolower( $atts['lang'] ) ) ) ) ) ) || ( ! empty( $atts['not_lang'] ) && defined( 'ICL_LANGUAGE_CODE' ) && in_array( strtolower( ICL_LANGUAGE_CODE ), array_map( 'trim', explode( ',', strtolower( $atts['not_lang'] ) ) ) ) ) ) ? '' : $content; } );