first commit

This commit is contained in:
2023-09-12 21:41:04 +02:00
commit 3361a7f053
13284 changed files with 2116755 additions and 0 deletions

View File

@@ -0,0 +1,9 @@
<?php
class WPML_TM_Parent_Filter_Ajax_Factory implements IWPML_AJAX_Action_Loader {
public function create() {
global $sitepress, $wp_post_types;
return new WPML_TM_Parent_Filter_Ajax( $sitepress, array_keys( $wp_post_types ) );
}
}

View File

@@ -0,0 +1,57 @@
<?php
class WPML_TM_Parent_Filter_Ajax implements IWPML_Action {
/** @var SitePress $sitepress */
private $sitepress;
/** @var array $wp_post_types */
private $wp_post_types;
public function __construct( SitePress $sitepress, array $wp_post_types ) {
$this->sitepress = $sitepress;
$this->wp_post_types = $wp_post_types;
}
public function add_hooks() {
add_action( 'wp_ajax_icl_tm_parent_filter', array( $this, 'get_parents_dropdown' ) );
}
public function get_parents_dropdown() {
$current_language = $this->sitepress->get_current_language();
$request_post_type = filter_var( $_POST['type'], FILTER_SANITIZE_FULL_SPECIAL_CHARS, FILTER_NULL_ON_FAILURE );
$request_post_lang = filter_var( $_POST['from_lang'], FILTER_SANITIZE_FULL_SPECIAL_CHARS, FILTER_NULL_ON_FAILURE );
$request_post_parent_id = filter_var( $_POST['parent_id'], FILTER_SANITIZE_NUMBER_INT, FILTER_NULL_ON_FAILURE );
$this->sitepress->switch_lang( $request_post_lang );
if ( in_array( $request_post_type, $this->wp_post_types ) ) {
$html = wp_dropdown_pages(
array(
'echo' => 0,
'name' => 'filter[parent_id]',
'selected' => $request_post_parent_id,
)
);
} else {
$html = wp_dropdown_categories(
array(
'echo' => 0,
'orderby' => 'name',
'name' => 'filter[parent_id]',
'selected' => $request_post_parent_id,
'taxonomy' => $request_post_type,
'hide_if_empty' => true,
)
);
}
$this->sitepress->switch_lang( $current_language );
if ( ! $html ) {
$html = esc_html__( 'None found', 'wpml-translation-management' );
}
wp_send_json_success( array( 'html' => $html ) );
}
}