ldc-groupe/content/plugins/wp-seo-multilingual/classes/class-wpml-wpseo-metabox-hooks.php
Vincent BRIDIER 134507db43 - Backup DEV
- Add DotEnv
- Fix Bato
- Etc..
2020-05-04 15:59:02 +02:00

67 lines
1.7 KiB
PHP

<?php
class WPML_WPSEO_Metabox_Hooks implements IWPML_Action {
/** @var WPML_Debug_BackTrace */
private $backtrace;
/** @var WPML_URL_Converter */
private $url_converter;
/** @var string */
private $pagenow;
/**
* @param WPML_Debug_BackTrace $backtrace
* @param WPML_URL_Converter $url_converter
* @param string $pagenow
*/
public function __construct( WPML_Debug_BackTrace $backtrace, WPML_URL_Converter $url_converter, $pagenow ) {
$this->backtrace = $backtrace;
$this->url_converter = $url_converter;
$this->pagenow = $pagenow;
}
/**
* Initialize hooks.
*/
public function add_hooks() {
if ( is_admin() ) {
add_filter( 'get_sample_permalink', array( $this, 'force_permalink_structure_to_postname' ) );
if ( 'post-new.php' === $this->pagenow ) {
add_filter( 'home_url', array( $this, 'convert_home_url_in_metabox_formatter' ) );
}
}
}
/**
* This will follow the way WP SEO deals with sample URL in WPSEO_Post_Metabox_Formatter::base_url_for_js
*
* @link https://onthegosystems.myjetbrains.com/youtrack/issue/wpmlcore-4690
*
* @param array $permalink
*
* @return array
*/
public function force_permalink_structure_to_postname( $permalink ) {
if ( $this->backtrace->is_class_function_in_call_stack( 'WPSEO_Metabox', 'localize_post_scraper_script' ) ) {
$permalink[0] = preg_replace( '#%pagename%#', '%postname%', $permalink[0] );
}
return $permalink;
}
/**
* @param string $url
*
* @return bool|mixed|string
*/
public function convert_home_url_in_metabox_formatter( $url ) {
if ( $this->backtrace->is_class_function_in_call_stack( 'WPSEO_Post_Metabox_Formatter', 'base_url_for_js' ) ) {
$url = $this->url_converter->convert_url( $url );
}
return $url;
}
}