diff --git a/prepros-6.config b/prepros-6.config index e3a25f4..8c692bc 100644 --- a/prepros-6.config +++ b/prepros-6.config @@ -22,6 +22,10 @@ { "path": "source/admin/css/_mixinx.scss", "configJson": "{\"forceCompile\":false,\"customOutput\":\"\",\"autoCompile\":false,\"sourceMap\":false,\"compiler-node-sass\":{\"enabled\":true,\"outputStyle\":\"nested\"},\"compiler-autoprefixer\":{\"enabled\":false},\"compiler-minify-css\":{\"enabled\":false},\"outputSuffix\":null}" + }, + { + "path": "source/admin/js/multidomain-support-for-elementor-admin.js", + "configJson": "{\"autoCompile\":true,\"forceCompile\":false,\"customOutput\":\"\",\"sourceMap\":true,\"compiler-concat-js\":{\"enabled\":true},\"compiler-babel\":{\"enabled\":true},\"compiler-uglify-js\":{\"enabled\":true,\"mangle\":true},\"outputSuffix\":\".min\"}" } ], "fileTree": { diff --git a/source/admin/class-multidomain-support-for-elementor-admin.php b/source/admin/class-multidomain-support-for-elementor-admin.php index b058a0d..f0fd727 100755 --- a/source/admin/class-multidomain-support-for-elementor-admin.php +++ b/source/admin/class-multidomain-support-for-elementor-admin.php @@ -188,7 +188,7 @@ private function get_current_language() break; case 'wpml': - return apply_filters( 'wpml_current_language', null ); + return apply_filters('wpml_current_language', null); break; default: @@ -244,13 +244,16 @@ public function get_domains($attr = 'all') */ private function get_content_lang() { + //TODO: improve this part + $postID = get_the_ID() ? get_the_ID() : $_GET['post']; + switch ($this->get_wpml_plugin_name()) { case 'polylang': - $lang_key = pll_get_post_language(get_the_ID()); + $lang_key = pll_get_post_language($postID); break; case 'wpml': - $lang_key = wpml_get_language_information(get_the_ID())['language_code']; + $lang_key = wpml_get_language_information($postID)['language_code']; break; default: @@ -287,6 +290,14 @@ private function get_default_lang() } + public function override_elementor_config($settings) + { + $settings['home_url'] = $this->get_domains('url')[$this->get_current_language()]; + + return $settings; + } + + /** * Add danoate and rateit links to plugin meta * @param $actions @@ -328,8 +339,6 @@ public function get_server_origin() { if (array_key_exists('HTTP_ORIGIN', $_SERVER)) { $origin = $_SERVER['HTTP_ORIGIN']; - } else if (array_key_exists('HTTP_REFERER', $_SERVER)) { - $origin = $_SERVER['HTTP_REFERER']; } else { $origin = $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['HTTP_HOST']; // in theory should be IP $_SERVER['REMOTE_ADDR']; } diff --git a/source/admin/js/multidomain-support-for-elementor-admin.min.js b/source/admin/js/multidomain-support-for-elementor-admin.min.js index 88b5a57..63346b1 100644 --- a/source/admin/js/multidomain-support-for-elementor-admin.min.js +++ b/source/admin/js/multidomain-support-for-elementor-admin.min.js @@ -1,2 +1,2 @@ -"use strict";function _classCallCheck(n,a){if(!(n instanceof a))throw new TypeError("Cannot call a class as a function")}var _createClass=function(){function e(n,a){for(var i=0;i<a.length;i++){var e=a[i];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(n,e.key,e)}}return function(n,a,i){return a&&e(n.prototype,a),i&&e(n,i),n}}();!function(o){var n=function(){function w(n){var a=n.debug,i=void 0!==a&&a,e=n.default_lang,t=void 0===e?"en":e,o=n.current_lang,l=void 0===o?"en":o,r=n.domains,u=void 0===r?window.location.host:r,s=n.urls,d=void 0===s?window.location.origin:s,c=n.wpml_plugin_name,g=void 0===c?"not-founded":c,_=n.admin_url,h=void 0===_?window.location.origin+"/wp-admin/":_;_classCallCheck(this,w),this.debug=i,this.default_lang=t,this.current_lang=l,this.domains=u,this.urls=d,this.wpml_plugin_name=g,this.admin_url=h}return _createClass(w,[{key:"_init",value:function(){this._debugLog("_init() =>",this),this._initTriggers(),this._updateLangSwitcher(this)}},{key:"_debugLog",value:function(){if(this.debug){for(var n,a=arguments.length,i=Array(a),e=0;e<a;e++)i[e]=arguments[e];(n=console).log.apply(n,["🦄 EMS:"].concat(i))}}},{key:"_initTriggers",value:function(){this._debugLog("_initTriggers()")}},{key:"_updateLangSwitcher",value:function(t){switch(t.wpml_plugin_name){case"polylang":o("#wp-admin-bar-languages a.ab-item").each(function(n,a){var i=t.urls[t.default_lang]+o(a).attr("href"),e=window.EMS._GET("lang",i);(i=new URL(i)).hostname="all"===e?t.domains[t.default_lang]:t.domains[e],o(a).attr("href",i)}),o("[class^='language_'] a, [class*=' language_'] a").each(function(n,a){var i=o(a).attr("href"),e=window.EMS._GET("new_lang",i);window.EMS._debugLog("edit link",e,i),null!=e&&((i=new URL(i)).hostname="all"===e?t.domains[t.default_lang]:t.domains[e],o(a).attr("href",i))});break;case"wpml":o("#wp-admin-bar-WPML_ALS-default li a.ab-item").each(function(n,a){var i=o(a).attr("href"),e=window.EMS._GET("lang",i);window.EMS._debugLog("edit link",e,i),(i=new URL(i)).hostname="all"===e?t.domains[t.default_lang]:t.domains[e],o(a).attr("href",i)}),o(".icl_translations.column-icl_translations a").each(function(n,a){var i=t.admin_url+o(a).attr("href"),e=window.EMS._GET("lang",i);(i=new URL(i)).hostname=t.domains[e],o(a).attr("href",i)});break;default:window.EMS._debugLog("Welcome to the Jungle!")}}},{key:"_GET",value:function(n,a){a=a||window.location.href,this._debugLog("_GET() => ",n,a);var e={};return a.replace(location.hash,"").replace(/[?&]+([^=&]+)=?([^&]*)?/gi,function(n,a,i){e[a]=void 0!==i?i:""}),n?e[n]?e[n]:null:e}}]),w}();window.EMS=new n(Multidomain_Support_For_Elementor_CONFIG),window.EMS._init()}(jQuery); +"use strict";function _classCallCheck(n,a){if(!(n instanceof a))throw new TypeError("Cannot call a class as a function")}var _createClass=function(){function e(n,a){for(var i=0;i<a.length;i++){var e=a[i];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(n,e.key,e)}}return function(n,a,i){return a&&e(n.prototype,a),i&&e(n,i),n}}();!function(o){var n=function(){function w(n){var a=n.debug,i=void 0!==a&&a,e=n.default_lang,t=void 0===e?"en":e,o=n.current_lang,l=void 0===o?"en":o,r=n.domains,u=void 0===r?window.location.host:r,s=n.urls,d=void 0===s?window.location.origin:s,c=n.wpml_plugin_name,g=void 0===c?"not-founded":c,_=n.admin_url,h=void 0===_?window.location.origin+"/wp-admin/":_;_classCallCheck(this,w),this.debug=i,this.default_lang=t,this.current_lang=l,this.domains=u,this.urls=d,this.wpml_plugin_name=g,this.admin_url=h}return _createClass(w,[{key:"_init",value:function(){this._debugLog("_init() =>",this),this._initTriggers(),this._updateLangSwitcher(this)}},{key:"_debugLog",value:function(){if(this.debug){for(var n,a=arguments.length,i=Array(a),e=0;e<a;e++)i[e]=arguments[e];(n=console).log.apply(n,["🦄 EMS:"].concat(i))}}},{key:"_initTriggers",value:function(){this._debugLog("_initTriggers()")}},{key:"_updateLangSwitcher",value:function(t){switch(t.wpml_plugin_name){case"polylang":o("#wp-admin-bar-languages a.ab-item").each(function(n,a){var i=t.urls[t.default_lang]+o(a).attr("href"),e=window.EMS._GET("lang",i);(i=new URL(i)).hostname="all"===e?t.domains[t.default_lang]:t.domains[e],o(a).attr("href",i)}),o("[class^='language_'] a, [class*=' language_'] a").each(function(n,a){var i=o(a).attr("href"),e=window.EMS._GET("new_lang",i);window.EMS._debugLog("edit link",e,i),null!=e&&((i=new URL(i)).hostname="all"===e?t.domains[t.default_lang]:t.domains[e],o(a).attr("href",i))});break;case"wpml":o("#wp-admin-bar-WPML_ALS-default li a.ab-item").each(function(n,a){var i=o(a).attr("href"),e=window.EMS._GET("lang",i);window.EMS._debugLog("edit link",e,i),(i=new URL(i)).hostname="all"===e?t.domains[t.default_lang]:t.domains[e],o(a).attr("href",i)}),o(".icl_translations.column-icl_translations a").each(function(n,a){var i=t.admin_url+o(a).attr("href"),e=window.EMS._GET("lang",i);(i=new URL(i)).hostname=t.domains[e],o(a).attr("href",i)});break;default:window.EMS._debugLog("Welcome to the Jungle!")}}},{key:"_GET",value:function(n,a){a=a||window.location.href,this._debugLog("_GET() => ",n,a);var e={};return a.replace(location.hash,"").replace(/[?&]+([^=&]+)=?([^&]*)?/gi,function(n,a,i){e[a]=void 0!==i?i:""}),n?e[n]?e[n]:null:e}}]),w}();window.EMS=new n(MULTIDOMAIN_SUPPORT_FOR_ELEMENTOR_CONFIG),window.EMS._init()}(jQuery); //# sourceMappingURL=multidomain-support-for-elementor-admin.min.js.map \ No newline at end of file diff --git a/source/admin/js/multidomain-support-for-elementor-admin.min.js.map b/source/admin/js/multidomain-support-for-elementor-admin.min.js.map index 519e2fb..8e794ab 100644 --- a/source/admin/js/multidomain-support-for-elementor-admin.min.js.map +++ b/source/admin/js/multidomain-support-for-elementor-admin.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["multidomain-support-for-elementor-admin.js"],"names":["$","EMS","_ref","_ref$debug","debug","_ref$default_lang","_ref$current_lang","host","_ref$domains","origin","_ref$urls","_ref$wpml_plugin_name","_ref$admin_url","default_lang","current_lang","domains","urls","wpml_plugin_name","admin_url","this","_initTriggers","_console","args","url","lang_key","href","param","vars","Multidomain_Support_For_Elementor_CONFIG","_init"],"mappings":"AAAA,8XAEA,SAAAA,GAEA,IAEAC,EAAA,WACA,SAAAA,EAAAC,GAQA,IAAAC,EAAAD,EAAAE,oBAPAD,gCACA,KAAAE,gCACA,KAAAC,2CACAC,KAAAC,wCACAC,OAAAC,oCACA,cAAAC,oDACA,aAAAC,qCAEAR,oBACAS,oBACAC,eACAC,YACAC,wBACAC,iBACAC,mFAQAC,WACAC,yCACAD,6DAUA,IAAAE,yGACAC,4DASA,2EAUAL,sBACA,4GAEA,iCACAM,cAEAA,2DACAC,oBACAD,6FAGA,qCACAA,sCACAA,wBAGAA,2DACAC,oBACAD,MAIA,UACA,2FAEA,iCACAA,sCACAA,cACAA,2DACAC,oBACAD,qGAGA,iCACAA,cAEAA,uBACAC,oBACAD,KAGA,MACA,6BACA,kFAcAE,mCACAF,qHAGA,cAIAG,GAEA,KAGAC,QA9HA,oBAoIAC,iDAEAC,QA1IA"} \ No newline at end of file +{"version":3,"sources":["multidomain-support-for-elementor-admin.js"],"names":["$","EMS","_ref","_ref$debug","debug","_ref$default_lang","_ref$current_lang","host","_ref$domains","origin","_ref$urls","_ref$wpml_plugin_name","_ref$admin_url","default_lang","current_lang","domains","urls","wpml_plugin_name","admin_url","this","_initTriggers","_console","args","url","lang_key","href","param","vars","MULTIDOMAIN_SUPPORT_FOR_ELEMENTOR_CONFIG","_init"],"mappings":"AAAA,8XAEA,SAAAA,GAEA,IAEAC,EAAA,WACA,SAAAA,EAAAC,GAQA,IAAAC,EAAAD,EAAAE,oBAPAD,gCACA,KAAAE,gCACA,KAAAC,2CACAC,KAAAC,wCACAC,OAAAC,oCACA,cAAAC,oDACA,aAAAC,qCAEAR,oBACAS,oBACAC,eACAC,YACAC,wBACAC,iBACAC,mFAQAC,WACAC,yCACAD,6DAUA,IAAAE,yGACAC,4DASA,2EAUAL,sBACA,4GAEA,iCACAM,cAEAA,2DACAC,oBACAD,6FAGA,qCACAA,sCACAA,wBAGAA,2DACAC,oBACAD,MAIA,UACA,2FAEA,iCACAA,sCACAA,cACAA,2DACAC,oBACAD,qGAGA,iCACAA,cAEAA,uBACAC,oBACAD,KAGA,MACA,6BACA,kFAcAE,mCACAF,qHAGA,cAIAG,GAEA,KAGAC,QA9HA,oBAoIAC,qDAEAC,QA1IA"} \ No newline at end of file diff --git a/source/includes/class-multidomain-support-for-elementor.php b/source/includes/class-multidomain-support-for-elementor.php index 2c67f15..566a3ce 100755 --- a/source/includes/class-multidomain-support-for-elementor.php +++ b/source/includes/class-multidomain-support-for-elementor.php @@ -69,8 +69,8 @@ class Multidomain_Support_For_Elementor */ public function __construct() { - if (defined('Multidomain_Support_For_Elementor_VERSION')) { - $this->version = Multidomain_Support_For_Elementor_VERSION; + if (defined('MULTIDOMAIN_SUPPORT_FOR_ELEMENTOR_VERSION')) { + $this->version = MULTIDOMAIN_SUPPORT_FOR_ELEMENTOR_VERSION; } else { $this->version = '1.0.0'; } @@ -165,6 +165,7 @@ private function define_admin_hooks() $this->loader->add_action('page_row_actions', $plugin_admin, 'update_row_actions_link', 12, 2); $this->loader->add_filter('plugin_action_links', $plugin_admin,'plugin_action_links', 10, 5); $this->loader->add_filter('plugin_row_meta', $plugin_admin, 'plugin_row_meta', 10, 3); + $this->loader->add_filter('elementor/admin/localize_settings', $plugin_admin, 'override_elementor_config', 10, 1); $this->loader->add_action('admin_enqueue_scripts', $plugin_admin, 'enqueue_styles'); $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_scripts' );