upskill-event-manager/wordpress-dev/wordpress/wp-content/plugins/astra-addon/compatibility/class-astra-wpml-compatibility.php
bengizmo d1509b3d60 feat(dev-env): implement backup-based development workflow
This commit introduces a more reliable and consistent approach to setting up
the development environment using backups:

- Add setup-from-backup.sh script for environment setup from existing backups
- Standardize script naming and organization
- Move obsolete scripts to bin/obsolete directory
- Update documentation with new workflow instructions
- Create migration guide for transitioning to new workflow
- Update Memory Bank with workflow improvements

The new workflow provides:
- More reliable environment setup
- Faster setup process
- Offline development capability
- Consistent development environments across team members

Breaking changes:
- setup-dev.sh is replaced by setup-from-backup.sh
- sync-and-setup.sh is replaced by separate scripts
- verify-with-wpcli.sh is no longer used

Migration path is documented in MIGRATION_GUIDE.md
2025-03-26 11:26:18 -03:00

93 lines
2.1 KiB
PHP

<?php
/**
* WPML Compatibility
*
* @package Astra Addon
* @link https://wpastra.com/
* @since Astra 1.0
*/
if ( ! class_exists( 'Astra_Wpml_Compatibility' ) ) {
/**
* WPML Compatibility
*/
// @codingStandardsIgnoreStart
final class Astra_Wpml_Compatibility {
// @codingStandardsIgnoreEnd
/**
* Instance of Astra_Wpml_Compatibility.
*
* @since 1.1.0
* @var null
*/
private static $instance = null;
/**
* Get instance of Astra_Wpml_Compatibility
*
* @since 1.1.0
* @return Astra_Wpml_Compatibility
*/
public static function instance() {
if ( ! isset( self::$instance ) ) {
self::$instance = new self();
}
return self::$instance;
}
/**
* Setup actions and filters.
*
* @since 1.1.0
*/
private function __construct() {
add_filter( 'astra_addon_get_display_posts_by_conditions', array( $this, 'get_advanced_hook_wpml_object' ), 10, 2 );
}
/**
* Pass the current page advanced hook display posts to WPML's object filter to allow strings to be translated.
*
* @since 1.1.0
* @param object $current_posts Posts.
* @param string $post_type Post Type.
*
* @return object Posts.
*/
public function get_advanced_hook_wpml_object( $current_posts, $post_type ) {
if ( 'astra-advanced-hook' === $post_type ) {
$wpml_filter_posts = $current_posts;
foreach ( $current_posts as $post_id => $post_data ) {
// Get tralated post id here.
$wpml_filter_id = apply_filters( 'wpml_object_id', $post_id, 'astra-advanced-hook', true ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound
if ( null !== $wpml_filter_id ) {
if ( $post_id !== $wpml_filter_id && isset( $wpml_filter_posts[ $post_id ] ) ) {
$wpml_filter_posts[ $wpml_filter_id ] = $wpml_filter_posts[ $post_id ];
$wpml_filter_posts[ $wpml_filter_id ]['id'] = $wpml_filter_id;
unset( $wpml_filter_posts[ $post_id ] );
}
}
}
$current_posts = $wpml_filter_posts;
}
return $current_posts;
}
}
}
/**
* Initiate the class.
*/
Astra_Wpml_Compatibility::instance();