• Resolved ekajuan

    (@ekajuan)


    Hi Chouby, nice plugin.
    Not long ago, I change my theme to Avada. I found polylang has a conflict with this theme.

    My settings:
    Default language: Bahasa Indonesia
    URL modifications: The language is set from content
    Hide URL language information for default language
    Remove /language/ in pretty permalinks
    Activate languages and translations for media

    Permalinks:
    https://dapur-uang.com/sample-post/

    Basically, if polylang is activated it interfere with the setting saving of Avada theme options.

    After a further investigation I found that Avada stores its theme options’ settings on wp_options table – avada_options
    But if your plugin is activated, it makes avada saves all the settings in avada_options_id

    _id I think that’s the code for my language Indonesia.

    Meanwhile to render the theme always use the settings stored in avada_options.

    So what should I do to fix this?

    https://www.ads-software.com/plugins/polylang/

Viewing 15 replies - 1 through 15 (of 31 total)
  • Plugin Author Chouby

    (@chouby)

    Hi!

    I don’t believe it’s a conflict but it’s rather Avada multilingual feature. Please ask to the Avada support team.

    Thread Starter ekajuan

    (@ekajuan)

    I have contacted them first. They don’t have multiligual feature. They suggest WPML for multilingual instead.

    The problem disappears, if Polylang plugin is turned off.

    Plugin Author Chouby

    (@chouby)

    Thread Starter ekajuan

    (@ekajuan)

    WPML is a commercial plugin. It is not bundled with Avada theme. People have to purchase separately.
    That means my theme currently is not equipped with WPML.

    I think the changelog just mean Avada is WPML compatible as written in this doc:
    https://theme-fusion.com/avada-doc/translations/using-wpml-avada/

    Quote:

    We’ve worked directly with the WPML team to make Avada compatible with the popular WPML plugin.

    I don’t know, maybe Avada has something in the way they write the code makes their variable get influenced by Polylang.
    Since you are a developer, maybe you have the experiences and the knowledge to analyze or predict the problem. I’m just a blogger.

    But if you say there’s no problem. Well ok. No problem.

    Plugin Support Chrystl

    (@chrystl)

    Hi
    If you make a search by key words “polylang” on the link that Chouby gave you, you will find for Avada Version 3.6 – September 10th, 2014
    – NEW: add official polylang support

    Avada team worked to make their theme compatible with Polylang.
    Nice thing.
    Maybe you should try to contact again the Avada support team.

    Thread Starter ekajuan

    (@ekajuan)

    Okay, I write this to anyone that may experience similar problem with Avada 3.6.2 and Polylang.

    I did some digging, and I figured out a hack. I don’t know what the consequence will be, but the theme options saving is now working in my language.

    My language is Indonesia. So the modifications is saved into Avada_options_id (please read my story above)

    To prevent the modification to be saved into Avada_options_id find this file:

    wp-content\themes\Avada\admin\index.php

    Find this part of code:

    elseif( ICL_LANGUAGE_CODE == 'all' ) {
    		if( defined('ICL_SITEPRESS_VERSION') ) {
    			$lang = '_' . $sitepress->get_default_language();
    			if( $sitepress->get_default_language() == 'en' ) {
    				$lang = '';
    			}
    		} elseif( function_exists( 'pll_default_language' ) ) {
    			$lang = '_' . pll_default_language('slug');
    			if( pll_default_language('slug') == 'en' ) {
    				$lang = '';
    			}

    change en to id, or whatever your language code name you setup with polylang. It’s case sensitive.

    And I think this piece of code is the one responsible for the creation of Avada_options_id:

    if(ICL_LANGUAGE_CODE != 'en' && ICL_LANGUAGE_CODE != 'all' && array_key_exists(ICL_LANGUAGE_CODE, icl_get_languages('skip_missing=N'))) {
    		$lang = '_'.ICL_LANGUAGE_CODE;
    		if(!get_option($theme_name.'_options'.$lang)) {
    			update_option($theme_name.'_options'.$lang, get_option($theme_name.'_options'));
    		}

    @chouby, maybe what’s inside index.php file will interest you or at least just for your information. And you’re right it has something to do with WPML:

    <?php
    /*
    Title		: SMOF
    Description	: Slightly Modified Options Framework
    Version		: 1.5.1
    Author		: Syamil MJ
    Author URI	: https://aquagraphite.com
    License		: GPLv3 - https://www.gnu.org/copyleft/gpl.html
    
    Credits		: Thematic Options Panel - https://wptheming.com/2010/11/thematic-options-panel-v2/
    		 	  Woo Themes - https://woothemes.com/
    		 	  Option Tree - https://www.ads-software.com/extend/plugins/option-tree/
    
    Contributors: Syamil MJ - https://aquagraphite.com
    			  Andrei Surdu - https://smartik.ws/
    			  Jonah Dahlquist - https://nucleussystems.com/
    			  partnuz - https://github.com/partnuz
    			  Alex Poslavsky - https://github.com/plovs
    			  Dovy Paukstys - https://simplerain.com
    */
    
    /**
     * Definitions
     *
     * @since 1.4.0
     */
    $theme_version = '';
    $smof_output = '';
    
    if( function_exists( 'wp_get_theme' ) ) {
    	if( is_child_theme() ) {
    		$temp_obj = wp_get_theme();
    		$theme_obj = wp_get_theme( $temp_obj->get('Template') );
    	} else {
    		$theme_obj = wp_get_theme();
    	}
    
    	$theme_version = $theme_obj->get('Version');
    	$theme_name = $theme_obj->get('Name');
    	$theme_uri = $theme_obj->get('ThemeURI');
    	$author_uri = $theme_obj->get('AuthorURI');
    }
    
    define( 'SMOF_VERSION', '1.5.1' );
    
    if( !defined('ADMIN_PATH') )
    	define( 'ADMIN_PATH', get_template_directory() . '/admin/' );
    if( !defined('ADMIN_DIR') )
    	define( 'ADMIN_DIR', get_template_directory_uri() . '/admin/' );
    
    define( 'ADMIN_IMAGES', ADMIN_DIR . 'assets/images/' );
    
    define( 'LAYOUT_PATH', ADMIN_PATH . 'layouts/' );
    define( 'THEMENAME', $theme_name );
    /* Theme version, uri, and the author uri are not completely necessary, but may be helpful in adding functionality */
    define( 'THEMEVERSION', $theme_version );
    define( 'THEMEURI', $theme_uri );
    define( 'THEMEAUTHORURI', $author_uri );
    
    // Avada Edit
    $lang = '';
    if(defined('ICL_LANGUAGE_CODE')) {
    	if( defined('ICL_SITEPRESS_VERSION') ) {
    		global $sitepress;
    	}
    	if(ICL_LANGUAGE_CODE != 'en' && ICL_LANGUAGE_CODE != 'all' && array_key_exists(ICL_LANGUAGE_CODE, icl_get_languages('skip_missing=N'))) {
    		$lang = '_'.ICL_LANGUAGE_CODE;
    		if(!get_option($theme_name.'_options'.$lang)) {
    			update_option($theme_name.'_options'.$lang, get_option($theme_name.'_options'));
    		}
    	} elseif( ICL_LANGUAGE_CODE == 'all' ) {
    		if( defined('ICL_SITEPRESS_VERSION') ) {
    			$lang = '_' . $sitepress->get_default_language();
    			if( $sitepress->get_default_language() == 'en' ) {
    				$lang = '';
    			}
    		} elseif( function_exists( 'pll_default_language' ) ) {
    			$lang = '_' . pll_default_language('slug');
    			if( pll_default_language('slug') == 'en' ) {
    				$lang = '';
    			}
    		}
    	} else {
    		$lang = '';
    	}
    }
    // End Avada Edit
    
    define( 'OPTIONS', $theme_name . '_options' . $lang );
    define( 'BACKUPS', $theme_name . '_backups' . $lang );
    
    /**
     * Required action filters
     *
     * @uses add_action()
     *
     * @since 1.0.0
     */
    //if (is_admin() && isset($_GET['activated'] ) && $pagenow == "themes.php" ) add_action('admin_head','of_option_setup');
    add_action('admin_head', 'optionsframework_admin_message');
    add_action('admin_init','optionsframework_admin_init');
    add_action('admin_menu', 'optionsframework_add_admin');
    
    /**
     * Required Files
     *
     * @since 1.0.0
     */
    require_once ( ADMIN_PATH . 'functions/functions.load.php' );
    require_once ( ADMIN_PATH . 'classes/class.options_machine.php' );
    
    /**
     * AJAX Saving Options
     *
     * @since 1.0.0
     */
    add_action('wp_ajax_of_ajax_post_action', 'of_ajax_callback');
    Thread Starter ekajuan

    (@ekajuan)

    I got better solution, change this instead:
    wp-content/themes/Avada/admin/functions/functions.admin.php

    find:

    function of_get_options($key = null, $data = null) {
        if ($key != null) { // Get one specific value
            //$data = get_theme_mod($key, $data);
        } else { // Get all values
            $data = get_option(OPTIONS);
        }
    
        return $data;
    }

    Change:

    get_option(OPTIONS)

    to:

    get_option(Avada_options_id)

    id is your default language code.

    The problem with the previous solution is the menu will get messed up.

    Hi, as much as I like your plugin, I have a problem with Polylang and Avada. The Avada theme options do not get updated while Polylang is active. Once I deactivate it, the options work. The Dev team @avada claim that the problem is with your code, here is what their developer said:

    I have checked the issue on your site and unfortunately, this is a polylang bug. Please post a ticket on their support forums and tell the developer to make
    icl_get_languages('skip_missing=N')

    work in the backend code as this is used by Avada theme options.

    You can follow this thread at: https://theme-fusion.com/forums/topic/header-does-not-update-after-changing-theme-options/#post-335179

    Do you think you can help?

    The same problem, Polylang deactivates Avada’s options. Thanks

    Same here, I’m following the thread on Theme Fusion’s forum. This is a serious issue and I hope it gets resolved ASAP, I already know what Chouby thinks (Avada is a commercial theme, not free) but it’s probably the best-selling theme ever, if Polylang plays nice with it, it would all work to the plugin advantage, right now it is maybe the only serious contender to the expensive WPML.

    Hi ekujaun. I need to get intouch with you, can you please email me at fashionghana1 (at) gmail. com

    Plugin Author Chouby

    (@chouby)

    Hi!

    ASAP

    This is the acronym I hate most, especially if you are writing about a free product offered with free support.

    I already know what Chouby thinks

    Certainly, you don’t ??

    At all, please test with the latest development version.
    https://downloads.www.ads-software.com/plugin/polylang.zip

    Hey Chouby,
    Thanks for replying to this topic. I’ve just uploaded the latest version but unfortunately it still doesn’t work for me. The Avada theme options do not update (I’m assuming that was part of the fix). Please can anyone else check this? Maybe I’m doing something wrong?

    Thread Starter ekajuan

    (@ekajuan)

    Yup, not yet working with the current Avada 3.7.
    @chouby: would it be better if I send you the theme?

    Plugin Author Chouby

    (@chouby)

    I have it thanks to the Avada team ??

    I read your first post again. Could you please set the language from the directory name? I believe that Avada is not compatible with Polylang when the language is set from the content (Avada should be compatible with Polylang through the WPML compatibility mode and WPML does not offer this feature).

    Could you detail the steps you are doing to make one option multilingual?

Viewing 15 replies - 1 through 15 (of 31 total)
  • The topic ‘Polylang Conflicts with Avada Theme’ is closed to new replies.