Commit b294bfbd by Arun Raj

Adding duplicate page & addons for elementor

parent 9e84d02c
.dpmrs {
width: 100%;
background: #f5f5f5;
border: 1px solid #cdcdcd;
border-left: 4px solid #0073aa;
display: none;
overflow: auto;
}
.dpmrs .l_dpmrs {
width: 200px;
float: left;
}
.dpmrs .l_dpmrs img {
float: left;
padding: 10px;
}
.dpmrs .r_dpmrs {
float: left;
padding: 15px 10px;
}
.close_dp_help {
text-decoration: none;
border-radius: 4px;
padding: 5px 15px;
color: #fff;
font-size: 16px;
margin: 10px;
}
.close_dp_help:hover {
color: #fff !important;
}
.close_dp_help.fm_close_btn {
float: right;
cursor: pointer;
text-decoration: none;
background: #e00e0e;
border-radius: 100%;
padding: 0px 6px;
display: block;
color: #fff;
font-size: 10px;
margin: 0px;
}
.close_dp_help.fm_close_btn_1 {
background: #fbc21c;
border-bottom: 3px solid #b18400;
margin-right: 0px;
margin-left: 0px;
}
.close_dp_help.fm_close_btn_2 {
background: #239200;
border-bottom: 3px solid #155600;
margin-right: 0px;
}
.close_dp_help.fm_close_btn_3 {
background: #ff1105;
border-bottom: 3px solid #b30900;
}
.clear {
clear: both;
}
\ No newline at end of file
<?php if (!defined('ABSPATH')) {
exit;
} ?>
<script>
var dp_ajax_url = "<?php echo admin_url( 'admin-ajax.php' );?>";
</script>
<?php $this->custom_assets();
?>
<div class="wrap duplicate_page_settings">
<?php $this->load_help_desk(); ?>
<h1><?php _e('Duplicate Page Settings ', 'duplicate-page'); ?><a href="https://duplicatepro.com/pro/" target="_blank" class="button button-primary"><?php _e('Buy PRO', 'duplicate-page'); ?></a></h1>
<?php $duplicatepageoptions = array();
$opt = get_option('duplicate_page_options');
$msg = isset($_GET['msg']) ? $_GET['msg'] : '';
if (isset($_POST['submit_duplicate_page']) && wp_verify_nonce($_POST['duplicatepage_nonce_field'], 'duplicatepage_action')):
_e('<strong>Saving Please wait...</strong>', 'duplicate-page');
$needToUnset = array('submit_duplicate_page'); //no need to save in Database
foreach ($needToUnset as $noneed):
unset($_POST[$noneed]);
endforeach;
foreach ($_POST as $key => $val):
$duplicatepageoptions[$key] = $val;
endforeach;
$saveSettings = update_option('duplicate_page_options', $duplicatepageoptions);
if ($saveSettings) {
duplicate_page::dp_redirect('options-general.php?page=duplicate_page_settings&msg=1');
} else {
duplicate_page::dp_redirect('options-general.php?page=duplicate_page_settings&msg=2');
}
endif;
if (!empty($msg) && $msg == 1):
_e('<div class="updated settings-error notice is-dismissible" id="setting-error-settings_updated">
<p><strong>Settings saved.</strong></p><button class="notice-dismiss" type="button"><span class="screen-reader-text">Dismiss this notice.</span></button></div>', 'duplicate-page');
elseif (!empty($msg) && $msg == 2):
_e('<div class="error settings-error notice is-dismissible" id="setting-error-settings_updated">
<p><strong>Settings not saved.</strong></p><button class="notice-dismiss" type="button"><span class="screen-reader-text">Dismiss this notice.</span></button></div>', 'duplicate-page');
endif;
?>
<div id="poststuff">
<div id="post-body" class="metabox-holder columns-2">
<div id="post-body-content" style="position: relative;">
<form action="" method="post" name="duplicate_page_form">
<?php wp_nonce_field('duplicatepage_action', 'duplicatepage_nonce_field'); ?>
<table class="form-table">
<tbody>
<tr>
<th scope="row"><label for="duplicate_post_editor"><?php _e('Choose Editor', 'duplicate-page'); ?></label></th>
<td>
<select id="duplicate_post_editor" name="duplicate_post_editor">
<option value="classic" <?php echo (isset($opt['duplicate_post_editor']) && $opt['duplicate_post_editor'] == 'classic') ? "selected = 'selected'" : ''; ?>><?php _e('Classic Editor', 'duplicate-page'); ?></option>
<option value="gutenberg" <?php echo (isset($opt['duplicate_post_editor']) && $opt['duplicate_post_editor'] == 'gutenberg') ? "selected = 'selected'" : ''; ?>><?php _e('Gutenberg Editor', 'duplicate-page'); ?></option>
</select>
<p><?php _e('Please select which editor your are using. <strong>Default:</strong> Classic Editor', 'duplicate-page'); ?></p>
</td>
</tr>
<tr>
<th scope="row"><label for="duplicate_post_status"><?php _e('Duplicate Post Status', 'duplicate-page'); ?></label></th>
<td>
<select id="duplicate_post_status" name="duplicate_post_status">
<option value="draft" <?php echo($opt['duplicate_post_status'] == 'draft') ? "selected = 'selected'" : ''; ?>><?php _e('Draft', 'duplicate-page'); ?></option>
<option value="publish" <?php echo($opt['duplicate_post_status'] == 'publish') ? "selected = 'selected'" : ''; ?>><?php _e('Publish', 'duplicate-page'); ?></option>
<option value="private" <?php echo($opt['duplicate_post_status'] == 'private') ? "selected = 'selected'" : ''; ?>><?php _e('Private', 'duplicate-page'); ?></option>
<option value="pending" <?php echo($opt['duplicate_post_status'] == 'pending') ? "selected = 'selected'" : ''; ?>><?php _e('Pending', 'duplicate-page'); ?></option>
</select>
<p><?php _e('Please select any post status you want to assign for duplicate post. <strong>Default:</strong> Draft.', 'duplicate-page'); ?></p>
</td>
</tr>
<tr>
<th scope="row"><label for="duplicate_post_redirect"><?php _e('Redirect to after click on <strong>Duplicate This Link</strong>', 'duplicate-page'); ?></label></th>
<td><select id="duplicate_post_redirect" name="duplicate_post_redirect">
<option value="to_list" <?php echo($opt['duplicate_post_redirect'] == 'to_list') ? "selected = 'selected'" : ''; ?>><?php _e('To All Posts List', 'duplicate-page'); ?></option>
<option value="to_page" <?php echo($opt['duplicate_post_redirect'] == 'to_page') ? "selected = 'selected'" : ''; ?>><?php _e('To Duplicate Edit Screen', 'duplicate-page'); ?></option>
</select>
<p><?php _e('Please select any post redirection, redirect you to selected after click on duplicate this link. <strong>Default:</strong> To current list.', 'duplicate-page'); ?></p>
</td>
</tr>
<tr>
<th scope="row"><label for="duplicate_post_suffix"><?php _e('Duplicate Post Suffix', 'duplicate-page'); ?></label></th>
<td>
<input type="text" class="regular-text" value="<?php echo !empty($opt['duplicate_post_suffix']) ? $opt['duplicate_post_suffix'] : ''; ?>" id="duplicate_post_suffix" name="duplicate_post_suffix">
<p><?php _e('Add a suffix for duplicate or clone post as Copy, Clone etc. It will show after title.', 'duplicate-page'); ?></p>
</td>
</tr>
</tbody></table>
<p class="submit"><input type="submit" value="Save Changes" class="button button-primary" id="submit" name="submit_duplicate_page"></p>
</form>
</div>
<div id="postbox-container-1" class="postbox-container">
<div id="side-sortables" class="meta-box-sortables ui-sortable">
<div id="submitdiv" class="postbox" style="padding: 6px;">
<p><strong style="color:#F00"><?php _e('Contribute some donation, to make plugin more stable. You can pay amount of your choice.', 'duplicate-page'); ?></strong></p>
<form name="_xclick" action="https://www.paypal.com/yt/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="yogesh72564@gmail.com">
<input type="hidden" name="item_name" value="Duplicate Page Plugin - Donation">
<input type="hidden" name="currency_code" value="USD">
<code>$</code> <input type="text" name="amount" value="" required="required" placeholder="Enter amount">
<input type="image" src="http://www.paypal.com/en_US/i/btn/x-click-butcc-donate.gif" border="0" name="submit" alt="Make Donations with Paypal">
</form>
<hr />
</div>
</div>
</div>
</div>
</div>
</div>
\ No newline at end of file
jQuery(window).load(function (e) {
jQuery('.dpmrs').delay(10000).slideDown('slow');
});
jQuery(document).ready(function () {
jQuery('.close_dp_help').on('click', function (e) {
var what_to_do = jQuery(this).data('ct');
jQuery.ajax({
type: "post",
url: dp_ajax_url,
data: {
action: "mk_dp_close_dp_help",
what_to_do: what_to_do
},
success: function (response) {
jQuery('.dpmrs').slideUp('slow');
}
});
});
});
\ No newline at end of file
msgid ""
msgstr ""
"Project-Id-Version: Duplicate Page v Češtině (v2)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-01-12 19:23+0100\n"
"PO-Revision-Date: 2018-02-05 16:32+0530\n"
"Language-Team: LeBaux <lebaux@gmail.com>\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.0.4\n"
"Last-Translator: Pierre LeBaux (EN>SK>CS) <lebaux@gmail.com>\n"
"Language: cs_CZ\n"
#: admin-settings.php:3
msgid "Duplicate Page Settings"
msgstr "Nastavení duplikátoru obsahu"
#: admin-settings.php:8
msgid "<strong>Saving Please wait...</strong>"
msgstr "<strong>Ukládám nastavení...</strong>"
#: admin-settings.php:27
msgid ""
"<div class=\"updated settings-error notice is-dismissible\" id=\"setting-"
"error-settings_updated\"> \n"
"<p><strong>Settings saved.</strong></p><button class=\"notice-dismiss\" type="
"\"button\"><span class=\"screen-reader-text\">Dismiss this notice.</span></"
"button></div>"
msgstr ""
"<div class=\"updated settings-error notice is-dismissible\" id=\"setting-"
"error-settings_updated\"> \n"
"<p><strong>Nastavení uloženo.</strong></p><button class=\"notice-dismiss\" "
"type=\"button\"><span class=\"screen-reader-text\">Rozumím.</span></button></"
"div>"
#: admin-settings.php:30
msgid ""
"<div class=\"error settings-error notice is-dismissible\" id=\"setting-error-"
"settings_updated\"> \n"
"<p><strong>Settings not saved.</strong></p><button class=\"notice-dismiss\" "
"type=\"button\"><span class=\"screen-reader-text\">Dismiss this notice.</"
"span></button></div>"
msgstr ""
"<div class=\"error settings-error notice is-dismissible\" id=\"setting-error-"
"settings_updated\"> \n"
"<p><strong>Nastavení nebylo uloženo!</strong></p><button class=\"notice-"
"dismiss\" type=\"button\"><span class=\"screen-reader-text\">Rozumím.</"
"span></button></div>"
#: admin-settings.php:43
msgid "Duplicate Post Status"
msgstr "Stav duplikátu po vytvoření"
#: admin-settings.php:50
msgid ""
"Please select any post status you want to assign for duplicate post. "
"<strong>Default:</strong> Draft."
msgstr ""
"Když se vytvoří duplikát, je potřeba mu nastavit stav publikovaní. "
"<strong>Výchozí:</strong> Koncept"
#: admin-settings.php:54
msgid "Redirect to after click on <strong>Duplicate This Link</strong>"
msgstr "Kam přesměrovat potom, co se vytvoří <strong>duplikát</strong>"
#: admin-settings.php:56
msgid "To All Posts List"
msgstr "Zůstat kde jste byli"
#: admin-settings.php:57
msgid "To Duplicate Edit Screen"
msgstr "Otevřít duplikát pro editaci"
#: admin-settings.php:59
msgid ""
"Please select any post redirection, redirect you to selected after click on "
"duplicate this link. <strong>Default:</strong> To current list."
msgstr ""
"Co se stane poté, co kliknete na tlačítko duplikovat. <strong>Výchozí:</"
"strong> Zůstat kde jste byli"
#: admin-settings.php:63
msgid "Duplicate Post Suffix"
msgstr "Přípona duplikovaného obsahu"
#: admin-settings.php:66
msgid ""
"Add a suffix for duplicate or clone post as Copy, Clone etc. It will show "
"after title."
msgstr ""
"Zde si můžete zvolit příponu, kterou plugin připojí k názvu duplikované "
"položky. Může zůstat prázdné, nebo například: kopie."
#: admin-settings.php:76
msgid ""
"Contribute some donation, to make plugin more stable. You can pay amount of "
"your choice."
msgstr ""
"Pokud je pro vás tento plugin užitečný, můžete vývojářovi třeba přispět na "
"jedno orosené."
#. Name of the plugin
msgid "Duplicate Page"
msgstr "Duplikátor obsahu"
#. Description of the plugin
msgid "Duplicate Posts, Pages and Custom Posts using single click."
msgstr "Duplikujte Příspěvky, Stránky a Custom Posty jedním kliknutím."
#. URI of the plugin
msgid "https://wordpress.org/plugins/duplicate-page/"
msgstr "https://wordpress.org/plugins/duplicate-page/"
#. Author of the plugin
msgid "mndpsingh287"
msgstr "mndpsingh287"
#. Author URI of the plugin
msgid "https://profiles.wordpress.org/mndpsingh287/"
msgstr "https://profiles.wordpress.org/mndpsingh287/"
#. Post Links
msgid "Duplicate This"
msgstr "Duplikovat"
#. Post Link title (status as draft)
msgid "Duplicate this as draft"
msgstr "Duplikujte to jako koncept"
#. Post Link title (status as publish)
msgid "Duplicate this as publish"
msgstr "Duplikujte to jako publikovat"
#. Post Link title (status as private)
msgid "Duplicate this as private"
msgstr "Duplikujte to jako soukromé"
#. Post Link title (status as pending)
msgid "Duplicate this as pending"
msgstr "Duplikujte to jako čekající"
\ No newline at end of file
msgid ""
msgstr ""
"Project-Id-Version: Duplicate Page\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-11-16 11:31+0100\n"
"PO-Revision-Date: 2018-11-16 11:32+0100\n"
"Last-Translator: Thorsten Wollenhöfer <thorsten.wollenhoefer@gmail.com>\n"
"Language-Team: Hindi\n"
"Language: de_DE@formal\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 2.2\n"
#: admin-settings.php:3
msgid "Duplicate Page Settings "
msgstr "Duplicate Page Einstellungen "
#: admin-settings.php:3
msgid "Buy PRO"
msgstr "PRO-Version kaufen"
#: admin-settings.php:8
msgid "<strong>Saving Please wait...</strong>"
msgstr "<strong>Speichern... Bitte warten.</strong>"
#: admin-settings.php:27
msgid ""
"<div class=\"updated settings-error notice is-dismissible\" id=\"setting-"
"error-settings_updated\"> \n"
"<p><strong>Settings saved.</strong></p><button class=\"notice-dismiss\" type="
"\"button\"><span class=\"screen-reader-text\">Dismiss this notice.</span></"
"button></div>"
msgstr ""
"<div class=\"updated settings-error notice is-dismissible\" id=\"setting-"
"error-settings_updated\"> \n"
"<p><strong>Einstellungen gespeichert.</strong></p><button class=\"notice-"
"dismiss\" type=\"button\"><span class=\"screen-reader-text\">Meldung "
"ausblenden.</span></button></div>"
#: admin-settings.php:30
msgid ""
"<div class=\"error settings-error notice is-dismissible\" id=\"setting-error-"
"settings_updated\"> \n"
"<p><strong>Settings not saved.</strong></p><button class=\"notice-dismiss\" "
"type=\"button\"><span class=\"screen-reader-text\">Dismiss this notice.</"
"span></button></div>"
msgstr ""
"<div class=\"error settings-error notice is-dismissible\" id=\"setting-error-"
"settings_updated\"> \n"
"<p><strong>Einstellungen nicht gespeichert.</strong></p><button class="
"\"notice-dismiss\" type=\"button\"><span class=\"screen-reader-text"
"\">Meldung ausblenden.</span></button></div>"
#: admin-settings.php:42
msgid "Duplicate Post Status"
msgstr "Duplicate Post Status"
#: admin-settings.php:45
msgid "Draft"
msgstr "Entwurf"
#: admin-settings.php:46
msgid "Publish"
msgstr "Veröffentlichen"
#: admin-settings.php:47
msgid "Private"
msgstr "Privat"
#: admin-settings.php:48
msgid "Pending"
msgstr "Ausstehend"
#: admin-settings.php:50
msgid ""
"Please select any post status you want to assign for duplicate post. "
"<strong>Default:</strong> Draft."
msgstr ""
"Bitte wählen Sie einen beliebigen Beitragsstatus, den Sie dem duplizierten "
"Beitrag zuweisen wollen. <strong>Standard:</strong> Entwurf."
#: admin-settings.php:54
msgid "Redirect to after click on <strong>Duplicate This Link</strong>"
msgstr "Weiterleiten nach Klick auf <strong>Diesen Link duplizieren</strong>"
#: admin-settings.php:56
msgid "To All Posts List"
msgstr "Zur Liste mit allen Beiträgen"
#: admin-settings.php:57
msgid "To Duplicate Edit Screen"
msgstr "Zum Duplizieren-Bildschirm-bearbeiten"
#: admin-settings.php:59
msgid ""
"Please select any post redirection, redirect you to selected after click on "
"duplicate this link. <strong>Default:</strong> To current list."
msgstr ""
"Bitte wählen Sie eine beliebige Beitragsweiterleitung aus. Sie werden "
"weitergeleitet, sobald sie auf die Auswahl für das Duplizieren des Links "
"klicken. <strong>Standard:</strong> Zur aktuellen Liste."
#: admin-settings.php:63
msgid "Duplicate Post Suffix"
msgstr "Beitragssuffix duplizieren"
#: admin-settings.php:66
msgid ""
"Add a suffix for duplicate or clone post as Copy, Clone etc. It will show "
"after title."
msgstr ""
"Füge einen Suffix für das Duplizieren oder Klonen eines Beitrags als Kopie, "
"Klon etc hinzu. Dieser wird nach dem Titel angezeigt."
#: admin-settings.php:76
msgid ""
"Contribute some donation, to make plugin more stable. You can pay amount of "
"your choice."
msgstr ""
"Spenden Sie etwas, um das Plugin stabiler zu machen. Sie können den Betrag "
"Ihrer Wahl bestimmen."
#: duplicatepage.php:55
msgid "Settings"
msgstr "Einstellungen"
#: duplicatepage.php:56
msgid "Donate"
msgstr "Spenden"
#. Plugin Name of the plugin/theme
#: duplicatepage.php:67
msgid "Duplicate Page"
msgstr "Seite duplizieren"
#: duplicatepage.php:179 duplicatepage.php:192
msgid "Duplicate This"
msgstr "Seite duplizieren"
#: duplicatepage.php:214
msgid "Duplicate This as "
msgstr "Duplizieren Sie dies als "
#. Plugin URI of the plugin/theme
msgid "https://wordpress.org/plugins/duplicate-page/"
msgstr "https://wordpress.org/plugins/duplicate-page/"
#. Description of the plugin/theme
msgid "Duplicate Posts, Pages and Custom Posts using single click."
msgstr ""
"Duplizieren Sie Beiträge, Seiten und benutzerdefinierte Beiträge mit einem "
"einzigen Klick."
#. Author of the plugin/theme
msgid "mndpsingh287"
msgstr "mndpsingh287"
#. Author URI of the plugin/theme
msgid "https://profiles.wordpress.org/mndpsingh287/"
msgstr "https://profiles.wordpress.org/mndpsingh287/"
#. Post Link
msgid "Duplicate This"
msgstr "Seite duplizieren"
#. Post Link title (status as draft)
msgid "Duplicate this as draft"
msgstr "Duplizieren Sie dies als Entwurf"
#. Post Link title (status as publish)
msgid "Duplicate this as publish"
msgstr "Duplizieren Sie dies als veröffentlichen"
#. Post Link title (status as private)
msgid "Duplicate this as private"
msgstr "Dupliziere dies als privat"
#. Post Link title (status as pending)
msgid "Duplicate this as pending"
msgstr "Duplizieren Sie dies als ausstehend"
msgid ""
msgstr ""
"Project-Id-Version: Duplicate Page\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-02-23 14:05+0100\n"
"PO-Revision-Date: 2018-02-23 14:16+0100\n"
"Language-Team: Hindi\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.8.11\n"
"Last-Translator: \n"
"Language: fr_FR\n"
#: admin-settings.php:3
msgid "Duplicate Page Settings"
msgstr "Réglages \"DUPLICATE PAGE\""
#: admin-settings.php:8
msgid "<strong>Saving Please wait...</strong>"
msgstr "<strong>Enregistrement, patientez...</strong>"
#: admin-settings.php:27
msgid ""
"<div class=\"updated settings-error notice is-dismissible\" id=\"setting-"
"error-settings_updated\"> \n"
"<p><strong>Settings saved.</strong></p><button class=\"notice-dismiss\" type="
"\"button\"><span class=\"screen-reader-text\">Dismiss this notice.</span></"
"button></div>"
msgstr ""
"<div class=\"updated settings-error notice is-dismissible\" id=\"setting-"
"error-settings_updated\"> \n"
"<p><strong>Paramètres enregistrés</strong></p><button class=\"notice-dismiss"
"\" type=\"button\"><span class=\"screen-reader-text\">Fermer la notice</"
"span></button></div>"
#: admin-settings.php:30
msgid ""
"<div class=\"error settings-error notice is-dismissible\" id=\"setting-error-"
"settings_updated\"> \n"
"<p><strong>Settings not saved.</strong></p><button class=\"notice-dismiss\" "
"type=\"button\"><span class=\"screen-reader-text\">Dismiss this notice.</"
"span></button></div>"
msgstr ""
"<div class=\"error settings-error notice is-dismissible\" id=\"setting-error-"
"settings_updated\"> \n"
"<p><strong>Settings not saved.</strong></p><button class=\"notice-dismiss\" "
"type=\"button\"><span class=\"screen-reader-text\">Fermer la notice</span></"
"button></div>"
#: admin-settings.php:43
msgid "Duplicate Post Status"
msgstr "Statut \"DUPLICATE PAGE\""
#: admin-settings.php:50
msgid ""
"Please select any post status you want to assign for duplicate post. "
"<strong>Default:</strong> Draft."
msgstr ""
"Veuillez sélectionner un statut de publication que vous souhaitez attribuer "
"pour une page dubliqué<strong> Par défaut: </ strong> Brouillon."
#: admin-settings.php:54
msgid "Redirect to after click on <strong>Duplicate This Link</strong>"
msgstr "Rediriger après avoir cliquer sur <strong>Dupliquer ce lien</strong>"
#: admin-settings.php:56
msgid "To All Posts List"
msgstr "Sur la liste de tout les articles"
#: admin-settings.php:57
msgid "To Duplicate Edit Screen"
msgstr "Sur l’écran de duplication"
#: admin-settings.php:59
msgid ""
"Please select any post redirection, redirect you to selected after click on "
"duplicate this link. <strong>Default:</strong> To current list."
msgstr ""
"S'il vous plaît sélectionner chaque redirection d'article, afin de "
"déterminer l’action après avoir cliqué sur dupliquer ce lien. <strong>Par "
"défaut:</strong> Sur la liste de tous les articles"
#: admin-settings.php:63
msgid "Duplicate Post Suffix"
msgstr "Dupliquer le suffixe de l'article"
#: admin-settings.php:66
msgid ""
"Add a suffix for duplicate or clone post as Copy, Clone etc. It will show "
"after title."
msgstr ""
"Ajoute un suffixe lorsque vous dupliquez ou clonez. Il sera mis après le "
"titre"
#: admin-settings.php:76
msgid ""
"Contribute some donation, to make plugin more stable. You can pay amount of "
"your choice."
msgstr ""
"Contribuer à un don, pour rendre le plugin plus stable. Vous pouvez donner "
"le montant de votre choix."
#. Name of the plugin
msgid "Duplicate Page"
msgstr "Dupliquer les Pages"
#. Description of the plugin
msgid "Duplicate Posts, Pages and Custom Posts using single click."
msgstr ""
"Dupliquer les articles, pages, et articles personnalisé juste en cliquant"
#. URI of the plugin
msgid "https://wordpress.org/plugins/duplicate-page/"
msgstr "https://wordpress.org/plugins/duplicate-page/"
#. Author of the plugin
msgid "mndpsingh287"
msgstr "mndpsingh287"
#. Author URI of the plugin
msgid "https://profiles.wordpress.org/mndpsingh287/"
msgstr "https://profiles.wordpress.org/mndpsingh287/"
#. Post Links
msgid "Duplicate This"
msgstr "Dupliquer ceci"
#. Post Link title (status as draft)
msgid "Duplicate this as draft"
msgstr "Dupliquer ceci comme brouillon"
#. Post Link title (status as publish)
msgid "Duplicate this as publish"
msgstr "Dupliquer cela comme publier"
#. Post Link title (status as private)
msgid "Duplicate this as private"
msgstr "Dupliquez cela comme privé"
#. Post Link title (status as pending)
msgid "Duplicate this as pending"
msgstr "Dupliquer cela en attente"
\ No newline at end of file
msgid ""
msgstr ""
"Project-Id-Version: Duplicate Page\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-12-19 12:43+0000\n"
"PO-Revision-Date: 2016-12-19 12:52+0000\n"
"Last-Translator: admin <munishthedeveloper48@gmail.com>\n"
"Language-Team: Hindi\n"
"Language: hi-IN\n"
"Plural-Forms: nplurals=2; plural=n != 1\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Loco - https://localise.biz/"
#: admin-settings.php:3
msgid "Duplicate Page Settings"
msgstr "डुप्लिकेट पृष्ठ सेटिंग"
#: admin-settings.php:8
msgid "<strong>Saving Please wait...</strong>"
msgstr "<strong>सुरक्षित कर रहा है कृपया प्रतीक्षा करें...</strong>"
#: admin-settings.php:27
msgid ""
"<div class=\"updated settings-error notice is-dismissible\" id=\"setting-"
"error-settings_updated\"> \n"
"<p><strong>Settings saved.</strong></p><button class=\"notice-dismiss\" "
"type=\"button\"><span class=\"screen-reader-text\">Dismiss this notice."
"</span></button></div>"
msgstr ""
"<div class=\"updated settings-error notice is-dismissible\" id=\"setting-"
"error-settings_updated\"> \n"
"<p><strong>सेटिंग्स को सहेजा गया।</strong></p><button class=\"notice-"
"dismiss\" type=\"button\"><span class=\"screen-reader-text\">इस नोटिस को "
"खारिज करें।</span></button></div>"
#: admin-settings.php:30
msgid ""
"<div class=\"error settings-error notice is-dismissible\" id=\"setting-error-"
"settings_updated\"> \n"
"<p><strong>Settings not saved.</strong></p><button class=\"notice-dismiss\" "
"type=\"button\"><span class=\"screen-reader-text\">Dismiss this notice."
"</span></button></div>"
msgstr ""
"<div class=\"error settings-error notice is-dismissible\" id=\"setting-error-"
"settings_updated\"> \n"
"<p><strong>सेटिंग सहेजा नहीं।</strong></p><button class=\"notice-dismiss\" "
"type=\"button\"><span class=\"screen-reader-text\">इस नोटिस को खारिज "
"करें।</span></button></div>"
#: admin-settings.php:43
msgid "Duplicate Post Status"
msgstr "पोस्ट की स्थिति डुप्लिकेट"
#: admin-settings.php:50
msgid ""
"Please select any post status you want to assign for duplicate post. <strong>"
"Default:</strong> Draft."
msgstr ""
"कृपया किसी भी पोस्ट की स्थिति आप दोहरे पद के लिए प्रदान करना चाहते हैं का "
"चयन करें।<strong>चूक:</strong> प्रारूप।"
#: admin-settings.php:54
msgid "Redirect to after click on <strong>Duplicate This Link</strong>"
msgstr ""
"पर क्लिक करने के बाद पुन: निर्देशित करने के लिए <strong> डुप्लिकेट इस लिंक "
"</ strong>"
#: admin-settings.php:56
msgid "To All Posts List"
msgstr "सभी पदों की सूची के लिए"
#: admin-settings.php:57
msgid "To Duplicate Edit Screen"
msgstr "स्क्रीन संपादित करने के लिए डुप्लिकेट"
#: admin-settings.php:59
msgid ""
"Please select any post redirection, redirect you to selected after click on "
"duplicate this link. <strong>Default:</strong> To current list."
msgstr ""
"कृपया किसी भी पद पुनर्निर्देशन का चयन करें, आप इस लिंक पर क्लिक करने के बाद "
"नकल चयनित करने के लिए भेज दें। <Strong> डिफ़ॉल्ट: </ strong> वर्तमान सूची पर।"
#: admin-settings.php:63
msgid "Duplicate Post Suffix"
msgstr "दोहरे पद प्रत्यय"
#: admin-settings.php:66
msgid ""
"Add a suffix for duplicate or clone post as Copy, Clone etc. It will show "
"after title."
msgstr ""
"कॉपी, क्लोन आदि के रूप में डुप्लिकेट या क्लोन के बाद यह खिताब के बाद दिखाएगा "
"के लिए एक प्रत्यय जोड़ें।"
#: admin-settings.php:76
msgid ""
"Contribute some donation, to make plugin more stable. You can pay amount of "
"your choice."
msgstr ""
"कुछ दान योगदान, प्लगइन अधिक स्थिर बनाने के लिए। आप अपनी पसंद की राशि का "
"भुगतान कर सकते हैं।"
#. Name of the plugin
msgid "Duplicate Page"
msgstr "डुप्लिकेट पृष्ठ"
#. Description of the plugin
msgid "Duplicate Posts, Pages and Custom Posts using single click."
msgstr "डुप्लिकेट पोस्ट, पन्ने और कस्टम पदों सिंगल क्लिक का उपयोग कर"
#. URI of the plugin
msgid "https://wordpress.org/plugins/duplicate-page/"
msgstr ""
#. Author of the plugin
msgid "mndpsingh287"
msgstr ""
#. Author URI of the plugin
msgid "https://profiles.wordpress.org/mndpsingh287/"
msgstr ""
# This file was generated by WPML
# WPML is a WordPress plugin that can turn any WordPress site into a full featured multilingual content management system.
# https://wpml.org
msgid ""
msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Project-Id-Version: WPML_EXPORT\n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: en\n"
"MIME-Version: 1.0\n"
"X-Generator: Poedit 2.0.4\n"
# <div class="wrap duplicate_page_settings">
# <h1><?php _e('Duplicate Page Settings', 'duplicate-page')?></h1>
# <?php $duplicatepageoptions = array();
msgid "Duplicate Page Settings"
msgstr ""
# if(isset($_POST['submit_duplicate_page']) && wp_verify_nonce( $_POST['duplicatepage_nonce_field'], 'duplicatepage_action' )):
# _e("<strong>Saving Please wait...</strong>", 'duplicate-page');
# $needToUnset = array('submit_duplicate_page');//no need to save in Database
msgid "<strong>Saving Please wait...</strong>"
msgstr ""
# if(!empty($msg) && $msg == 1):
# _e( '<div class="updated settings-error notice is-dismissible" id="setting-error-settings_updated">
# <p><strong>Settings saved.</strong></p><button class="notice-dismiss" type="button"><span class="screen-reader-text">Dismiss this notice.</span></button></div>', 'duplicate-page');
msgid ""
"<div class=\"updated settings-error notice is-dismissible\" id=\"setting-error-settings_updated\"> \r\n"
"<p><strong>Settings saved.</strong></p><button class=\"notice-dismiss\" type=\"button\"><span class=\"screen-reader-text\">Dismiss this notice.</span></button></div>"
msgstr ""
# elseif(!empty($msg) && $msg == 2):
# _e( '<div class="error settings-error notice is-dismissible" id="setting-error-settings_updated">
# <p><strong>Settings not saved.</strong></p><button class="notice-dismiss" type="button"><span class="screen-reader-text">Dismiss this notice.</span></button></div>', 'duplicate-page');
msgid ""
"<div class=\"error settings-error notice is-dismissible\" id=\"setting-error-settings_updated\"> \r\n"
"<p><strong>Settings not saved.</strong></p><button class=\"notice-dismiss\" type=\"button\"><span class=\"screen-reader-text\">Dismiss this notice.</span></button></div>"
msgstr ""
# <tr>
# <th scope="row"><label for="duplicate_post_status"><?php _e('Duplicate Post Status', 'duplicate-page')?></label></th>
# <td><select id="duplicate_post_status" name="duplicate_post_status">
msgid "Duplicate Post Status"
msgstr ""
# </select>
# <p><?php _e('Please select any post status you want to assign for duplicate post. <strong>Default:</strong> Draft.', 'duplicate-page')?></p>
# </td>
msgid "Please select any post status you want to assign for duplicate post. <strong>Default:</strong> Draft."
msgstr ""
# <tr>
# <th scope="row"><label for="duplicate_post_redirect"><?php _e('Redirect to after click on <strong>Duplicate This Link</strong>', 'duplicate-page')?></label></th>
# <td><select id="duplicate_post_redirect" name="duplicate_post_redirect">
msgid "Redirect to after click on <strong>Duplicate This Link</strong>"
msgstr ""
# <td><select id="duplicate_post_redirect" name="duplicate_post_redirect">
# <option value="to_list" <?php echo($opt['duplicate_post_redirect'] == 'to_list' ) ? "selected = 'selected'" : ""; ?>><?php _e('To All Posts List', 'duplicate-page')?></option>
# <option value="to_page" <?php echo($opt['duplicate_post_redirect'] == 'to_page' ) ? "selected = 'selected'" : ""; ?>><?php _e('To Duplicate Edit Screen', 'duplicate-page')?></option>
msgid "To All Posts List"
msgstr ""
# <option value="to_list" <?php echo($opt['duplicate_post_redirect'] == 'to_list' ) ? "selected = 'selected'" : ""; ?>><?php _e('To All Posts List', 'duplicate-page')?></option>
# <option value="to_page" <?php echo($opt['duplicate_post_redirect'] == 'to_page' ) ? "selected = 'selected'" : ""; ?>><?php _e('To Duplicate Edit Screen', 'duplicate-page')?></option>
# </select>
msgid "To Duplicate Edit Screen"
msgstr ""
# </select>
# <p><?php _e('Please select any post redirection, redirect you to selected after click on duplicate this link. <strong>Default:</strong> To current list.', 'duplicate-page')?></p>
# </td>
msgid "Please select any post redirection, redirect you to selected after click on duplicate this link. <strong>Default:</strong> To current list."
msgstr ""
# <tr>
# <th scope="row"><label for="duplicate_post_suffix"><?php _e('Duplicate Post Suffix', 'duplicate-page')?></label></th>
# <td>
msgid "Duplicate Post Suffix"
msgstr ""
# <input type="text" class="regular-text" value="<?php echo !empty($opt['duplicate_post_suffix']) ? $opt['duplicate_post_suffix'] : ''?>" id="duplicate_post_suffix" name="duplicate_post_suffix">
# <p><?php _e('Add a suffix for duplicate or clone post as Copy, Clone etc. It will show after title.', 'duplicate-page')?></p>
# </td>
msgid "Add a suffix for duplicate or clone post as Copy, Clone etc. It will show after title."
msgstr ""
# <div id="submitdiv" class="postbox" style="padding: 6px;">
# <p><strong style="color:#F00"><?php _e('Contribute some donation, to make plugin more stable. You can pay amount of your choice.', 'duplicate-page')?></strong></p>
# <form name="_xclick" action="https://www.paypal.com/yt/cgi-bin/webscr" method="post">
msgid "Contribute some donation, to make plugin more stable. You can pay amount of your choice."
msgstr ""
# if ( $file == plugin_basename( __FILE__ ) ) {
# $duplicate_page_links = '<a href="'.get_admin_url().'options-general.php?page=duplicate_page_settings">'.__('Settings', 'duplicate-page').'</a>';
# $duplicate_page_donate = '<a href="http://www.webdesi9.com/donate/?plugin=duplicate-page" title="Donate Now" target="_blank" style="font-weight:bold">'.__('Donate', 'duplicate-page').'</a>';
msgid "Settings"
msgstr ""
# $duplicate_page_links = '<a href="'.get_admin_url().'options-general.php?page=duplicate_page_settings">'.__('Settings', 'duplicate-page').'</a>';
# $duplicate_page_donate = '<a href="http://www.webdesi9.com/donate/?plugin=duplicate-page" title="Donate Now" target="_blank" style="font-weight:bold">'.__('Donate', 'duplicate-page').'</a>';
# array_unshift( $links, $duplicate_page_donate );
msgid "Donate"
msgstr ""
# public function duplicate_page_options_page(){
# add_options_page( __( 'Duplicate Page', 'duplicate-page' ), __( 'Duplicate Page', 'duplicate-page' ), 'manage_options', 'duplicate_page_settings',array(&$this, 'duplicate_page_settings'));
# }
msgid "Duplicate Page"
msgstr ""
# if (current_user_can('edit_posts')) {
# $actions['duplicate'] = '<a href="admin.php?action=dt_duplicate_post_as_draft&amp;post=' . $post->ID . '" title="Duplicate this as '.$post_status.'" rel="permalink">'.__( "Duplicate This", "duplicate-page" ).'</a>';
# }
msgid "Duplicate This"
msgstr ""
msgid ""
msgstr ""
"Project-Id-Version: Duplicate Page\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-12-19 12:43+0000\n"
"PO-Revision-Date: 2016-12-19 12:52+0000\n"
"Last-Translator: admin <munishthedeveloper48@gmail.com>\n"
"Language-Team: Hindi\n"
"Language: hi-IN\n"
"Plural-Forms: nplurals=2; plural=n != 1\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Loco - https://localise.biz/"
#: admin-settings.php:3
msgid "Duplicate Page Settings"
msgstr "डुप्लिकेट पृष्ठ सेटिंग"
#: admin-settings.php:8
msgid "<strong>Saving Please wait...</strong>"
msgstr "<strong>सुरक्षित कर रहा है कृपया प्रतीक्षा करें...</strong>"
#: admin-settings.php:27
msgid ""
"<div class=\"updated settings-error notice is-dismissible\" id=\"setting-"
"error-settings_updated\"> \n"
"<p><strong>Settings saved.</strong></p><button class=\"notice-dismiss\" "
"type=\"button\"><span class=\"screen-reader-text\">Dismiss this notice."
"</span></button></div>"
msgstr ""
"<div class=\"updated settings-error notice is-dismissible\" id=\"setting-"
"error-settings_updated\"> \n"
"<p><strong>सेटिंग्स को सहेजा गया।</strong></p><button class=\"notice-"
"dismiss\" type=\"button\"><span class=\"screen-reader-text\">इस नोटिस को "
"खारिज करें।</span></button></div>"
#: admin-settings.php:30
msgid ""
"<div class=\"error settings-error notice is-dismissible\" id=\"setting-error-"
"settings_updated\"> \n"
"<p><strong>Settings not saved.</strong></p><button class=\"notice-dismiss\" "
"type=\"button\"><span class=\"screen-reader-text\">Dismiss this notice."
"</span></button></div>"
msgstr ""
"<div class=\"error settings-error notice is-dismissible\" id=\"setting-error-"
"settings_updated\"> \n"
"<p><strong>सेटिंग सहेजा नहीं।</strong></p><button class=\"notice-dismiss\" "
"type=\"button\"><span class=\"screen-reader-text\">इस नोटिस को खारिज "
"करें।</span></button></div>"
#: admin-settings.php:43
msgid "Duplicate Post Status"
msgstr "पोस्ट की स्थिति डुप्लिकेट"
#: admin-settings.php:50
msgid ""
"Please select any post status you want to assign for duplicate post. <strong>"
"Default:</strong> Draft."
msgstr ""
"कृपया किसी भी पोस्ट की स्थिति आप दोहरे पद के लिए प्रदान करना चाहते हैं का "
"चयन करें।<strong>चूक:</strong> प्रारूप।"
#: admin-settings.php:54
msgid "Redirect to after click on <strong>Duplicate This Link</strong>"
msgstr ""
"पर क्लिक करने के बाद पुन: निर्देशित करने के लिए <strong> डुप्लिकेट इस लिंक "
"</ strong>"
#: admin-settings.php:56
msgid "To All Posts List"
msgstr "सभी पदों की सूची के लिए"
#: admin-settings.php:57
msgid "To Duplicate Edit Screen"
msgstr "स्क्रीन संपादित करने के लिए डुप्लिकेट"
#: admin-settings.php:59
msgid ""
"Please select any post redirection, redirect you to selected after click on "
"duplicate this link. <strong>Default:</strong> To current list."
msgstr ""
"कृपया किसी भी पद पुनर्निर्देशन का चयन करें, आप इस लिंक पर क्लिक करने के बाद "
"नकल चयनित करने के लिए भेज दें। <Strong> डिफ़ॉल्ट: </ strong> वर्तमान सूची पर।"
#: admin-settings.php:63
msgid "Duplicate Post Suffix"
msgstr "दोहरे पद प्रत्यय"
#: admin-settings.php:66
msgid ""
"Add a suffix for duplicate or clone post as Copy, Clone etc. It will show "
"after title."
msgstr ""
"कॉपी, क्लोन आदि के रूप में डुप्लिकेट या क्लोन के बाद यह खिताब के बाद दिखाएगा "
"के लिए एक प्रत्यय जोड़ें।"
#: admin-settings.php:76
msgid ""
"Contribute some donation, to make plugin more stable. You can pay amount of "
"your choice."
msgstr ""
"कुछ दान योगदान, प्लगइन अधिक स्थिर बनाने के लिए। आप अपनी पसंद की राशि का "
"भुगतान कर सकते हैं।"
#. Name of the plugin
msgid "Duplicate Page"
msgstr "डुप्लिकेट पृष्ठ"
#. Description of the plugin
msgid "Duplicate Posts, Pages and Custom Posts using single click."
msgstr "डुप्लिकेट पोस्ट, पन्ने और कस्टम पदों सिंगल क्लिक का उपयोग कर"
#. URI of the plugin
msgid "https://wordpress.org/plugins/duplicate-page/"
msgstr ""
#. Author of the plugin
msgid "mndpsingh287"
msgstr ""
#. Author URI of the plugin
msgid "https://profiles.wordpress.org/mndpsingh287/"
msgstr ""
#. Post link
msgid "Duplicate This"
msgstr ""
#. Post Link title (status as draft)
msgid "Duplicate this as draft"
msgstr ""
#. Post Link title (status as publish)
msgid "Duplicate this as publish"
msgstr ""
#. Post Link title (status as private)
msgid "Duplicate this as private"
msgstr ""
#. Post Link title (status as pending)
msgid "Duplicate this as pending"
msgstr ""
\ No newline at end of file
=== Duplicate Page ===
Contributors: mndpsingh287
Tags: Page Duplicate, Post duplicate, duplicate custom posts, duplicate page, duplicate post, duplicate ,custom posts, post, page, duplicate this, duplicate, content duplicate, duplicate content, data duplicate, duplicate data, copy page, clone page,wordpress page duplicate, wordpress post duplicate, Copy post, wordpress page duplicator, wordpress post duplicator, Cloner, duplicate post
Requires at least: 3.4
Tested up to: 5.4
Stable tag: 4.2
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Duplicate Posts, Pages and Custom Posts easily using single click
== Description ==
Duplicate Posts, Pages and Custom Posts easily using single click. You can duplicate your pages, posts and custom post by just one click and it will save as your selected options (draft, private, public, pending).
= Key Features in Duplicate Page Pro Editions =
* **User Roles:** Allow User Roles To access Duplicate Page.
* **Post Types:** Filter to show Duplicate Page link in post types.
* **Clone Link Location:** Option where to show clone link.
* **Status:** Option to select Duplicate Posts Status.
* **Redirection:** Option to Redirect after click on clone link..
* **Clone Link Title:** Option to change Duplicate Post Link Title.
* **Post Prefix:** Option to add Post Prefix.
* **Post Suffix:** Option to add Post Suffix.
* **Editor**: And Many More Filters and Features.
> <strong>[Buy Pro Version](https://duplicatepro.com/pro/?utm_source=Wordpress.org&utm_medium=Website&utm_campaign=Duplicate%20Page%20Pro)</strong> with various features & support.
> <strong>[Contact us](https://duplicatepro.com/contact/?utm_source=Wordpress.org&utm_medium=Website&utm_campaign=Duplicate%20Page%20Pro)</strong> for Support Only Pro Version Users.
**[Upgrade to Pro Version](https://duplicatepro.com/pro/?utm_source=Wordpress.org&utm_medium=Website&utm_campaign=Duplicate%20Page%20Pro)**
https://www.youtube.com/watch?v=Fj8BHxvebXs&feature=youtu.be
== Installation ==
1. Upload the `duplicate-page` folder to the directory `/wp-content/plugins/`.
2. Activate the plugin using the 'Plugins' menu in WordPress.
== Frequently asked questions ==
## How to use
1. First Activate Plugin.
2. Go Select to Duplicate Page settings Menu from Settings Tab and savings settings.
1. Then Create New Post/Page or Use old.
2. After click on duplicate this link, then duplicate post/ page will be created and saved as draft,publish,pending,private depending upon settings.
== Screenshots ==
1. Activate Screen
2. Duplicate Page Settings Screen
3. Select Option from Settings Page.
4. Click on Duplicate This.
5. Duplicate Post / Page will Appear.
== Changelog ==
= 4.2(26th March, 2020) =
* Fixed Translations string issue
= 4.1(20th Feb, 2020) =
* Fixed Translations issue
= 4.0(20th Sep, 2019) =
* Fixed slug duplication issue
= 3.9 (6th Aug, 2019) =
* Fixed some compatibility issues
= 3.8 (18th July, 2019) =
* Fixed compatibility issues with GT3 editor
= 3.7 (18th July, 2019) =
* Fixed compatibility issues with other editors
= 3.6 (16th July, 2019) =
* Security fixes addressed by wordpress
= 3.5 (2nd Apr, 2019) =
* Gutenberg and advanced custom fields compatibility
= 3.4 (1st Apr, 2019) =
* Security issues fixes addressed by Securi
= 3.3 (14th March, 2019) =
* Compatible with WordPress 5.1.1
= 3.2 (25th Dec, 2018) =
* Gutenberg Compatible
= 3.1 (5th Dec, 2018) =
* removed nag
= 3.0 (3rd Dec, 2018) =
* German Formal lang added
= 2.9 (16th Nov, 2018) =
* Minor bug fixes
= 2.8 (20th Oct, 2018) =
* Compatible with php 7.3 and wordpress 5.0
= 2.7 (28th July, 2018) =
* removed useless adsense code
= 2.6 (24th March, 2018) =
* Added signup popup and minor fixes.
= 2.5 (5th Feb, 2018) =
* Translations issue resolve.
= 2.4 (29th Nov, 2017) =
* Duplicate Page appends original post name issue fixed.
= 2.3 (27st april, 2017) =
* Minor Fixes
= 2.2 (28th Jan, 2017) =
* Strings Translations
= 2.1 (25th Aug, 2016) =
* New Text field added in settings page for duplicate post title suffix to remove confusion of currently duplicate page.
= 1.4 (18th Jun, 2016) =
* New Features added
= 1.3 (23th May, 2016) =
* New Features added
= 1.2 (05th May, 2016) =
* Duplicate Page Settings Menu Added.
= 1.1 (04th May ,2016) =
* fix some Bug in 1.0
== Other Notes ==
== Minimum requirements for Duplicate Page ==
* Wordpress 3.3+
* PHP 5.x
* MySQL 5.x
.pa-header-wrapper{
padding:20px;
overflow:hidden
}
.pa-title-left{
width:80%;
float:right
}
h1.pa-title-main{
padding:0;
line-height:1.3em;
font-size:42px;
margin-top:5px
}
.pa-title-sub{
color:#777;
font-weight:400;
margin-right:3px
}
.pa-title-right{
float:left
}
.pa-title-right img{
width:100px;
height:100px
}
.button.pa-btn{
border:none;
color:#fff;
text-align:center;
padding:3px;
max-width:250px;
height:auto;
margin-bottom:15px;
display:block;
font-weight:700;
box-shadow:none
}
.pa-btn.pa-save-button{
background-color:#1A7FC2;
margin-bottom:0;
margin-top:30px;
padding:3px 10px
}
.pa-btn.pa-save-button:hover{
background:#0e629a;
color:#fff
}
.pa-btn.pa-save-button:focus{
background:#0e629a;
color:#fff
}
.pa-settings-tabs-list{
margin:0;
border-bottom:1px solid #ccc
}
.pa-settings-tabs-list li{
display:inline-block;
margin-bottom:4px;
margin-right:.5em
}
.pa-tab-list-item{
background:#e5e5e5;
padding:9px 15px;
line-height:30px;
font-size:18px;
font-weight:700;
color:#444;
text-decoration:none;
border:1px solid #ccc;
border-bottom:none
}
.pa-tab-list-item:focus{
box-shadow:none
}
li.ui-state-default:not(.ui-state-active):hover a{
background:#fff;
color:#444
}
li.ui-state-active a{
outline:none;
color:#000;
background:transparent;
box-shadow:none;
border-bottom:1px solid #f1f1f1
}
.pa-row{
width:100%;
overflow:hidden
}
.pa-settings-tabs{
padding:15px 25px;
margin-top:-3em
}
#pa-about{
margin-top:50px
}
.pa-col-half{
width:40%;
height:auto;
float:right
}
.pa-about-panel{
width:100%;
display:inline-block;
margin-bottom:20px
}
.pa-icon-container{
float:right;
display:inline-block;
width:45px
}
.pa-icon-container i{
font-size:25px
}
.pa-text-container{
display:inline-block;
width:80%
}
.pa-text-container h4{
margin:0;
font-weight:400;
font-size:18px
}
.pa-text-container p{
line-height:22px;
color:#444;
font-size:13px;
margin:1em 0
}
.pa-elements-table{
border-collapse:collapse;
margin-top:.5em;
margin-right:5px;
width:80%;
clear:both
}
.pa-elements-table th{
vertical-align:top;
text-align:right;
padding:20px 0 20px 10px;
width:200px;
line-height:1.3;
font-weight:500
}
.pa-elements-table tr{
border-bottom:1px solid #ddd
}
.pa-elements-table td{
margin-bottom:9px;
padding:15px 10px;
line-height:1.3;
vertical-align:middle
}
.pa-elements-table .pa-element-desc{
font-weight:300;
padding-bottom:1.5em;
border-bottom:1px solid #ddd
}
.switch{
position:relative;
display:inline-block;
width:70px;
height:33px
}
.switch input{
display:none
}
.slider,.pro-slider{
position:absolute;
cursor:pointer;
top:0;
right:0;
left:0;
bottom:0;
background-color:#f2f2f2;
box-shadow:0 0 2px 1px #ccc inset;
-webkit-transition:.4s;
transition:.4s
}
.slider:before,.pro-slider:before{
position:absolute;
content:"";
height:27.5px;
width:27.5px;
right:0;
bottom:1.1px;
background:radial-gradient(farthest-corner at 14px 0px,#f0f0f0 50%,#cacaca 100%);
-webkit-transition:.4s;
transition:.4s;
padding:0;
margin:0;
border:1px solid #c6c6c6;
box-shadow:0 2.5px 5px #b8b8b9
}
input:checked + .slider{
background-color:#18a4fd;
box-shadow:0 0 2px 1px #149afd inset;
border:1px solid #149afd
}
input:focus + .slider{
box-shadow:0 0 1px #18a4fd
}
input:checked + .slider:before{
box-shadow:0 2.5px 5px #0d6fbd;
border:1px solid #0d6fbd;
-webkit-transform:translateX(-40px);
-ms-transform:translateX(-40px);
transform:translateX(-40px)
}
.slider.round,.pro-slider.round{
border:1px solid #b8b8b9;
border-radius:34px
}
.slider.round:before,.pro-slider.round:before{
border-radius:50%
}
.pa-maps-table{
text-align:right
}
.pa-api-title{
display:inline-block;
margin:0
}
.pa-maps-table select {
width: 100%;
max-width: 100%;
}
.pa-maps-table #premium-map-api{
width: 100%;
}
.pa-maps-table tr td:first-of-type{
padding-left: 1.2em;
}
.pa-maps-table td:first-of-type .pa-api-disable-title {
margin:0.6em 0;
}
.pa-api-disable-title label,.pa-is-beta label{
margin-left:15px
}
.pa-api-disable-title span,.pa-is-beta span{
font-weight:400
}
.pa-maps-api-notice{
margin:0.5em 0
}
.pa-api-title input{
margin-top:10px;
font-size:normal;
font-weight:400;
width:400px;
margin-right:30px
}
#pa-maintenance{
margin-top:30px
}
.pa-beta-table tr{
text-align:right
}
.pa-roll-back,.pa-beta-test{
text-align:right;
font-size:20px;
font-weight:400;
margin-top:15px;
margin-bottom:10px
}
.pa-beta-test{
margin-top:0
}
.pa-roll-back-span,.pa-beta-test-span{
line-height:22px;
color:#444;
font-size:13px;
margin:0;
font-weight:400
}
.pa-roll-row,.pa-beta-row{
float:right
}
.pa-beta-row{
margin-top:13px
}
.pa-roll-row th,.pa-beta-row th{
vertical-align:top;
text-align:right;
padding:20px 0 20px 10px;
width:200px;
line-height:1.3
}
.pa-roll-row td{
padding:15px 10px
}
.pa-beta-row td{
padding:22px 10px
}
.pa-roll-row .pa-rollback-button{
box-shadow:0 1px 0 #ccc;
color:#555;
border:1px solid #ccc;
background:#f7f7f7;
vertical-align:top;
margin:0;
padding:0 10px 1px
}
.pa-roll-row .pa-rollback-button:hover{
background:#fafafa;
border-color:#999;
color:#23282d
}
.pa-roll-row .pa-roll-desc{
font-style:italic;
color:red;
margin-top:4px
}
.pa-beta-row .pa-beta-desc{
font-style:italic;
margin-top:4px
}
.pa-sys-info-tab{
background:#f7f7f7;
margin:8px;
border:2px solid #ddd;
border-radius:3px;
padding:0
}
.pa-system-info-container{
padding:10px
}
.pa-sys-info-tab .pa-sys-info-title{
margin:0;
margin-bottom:0;
padding:10px;
border-bottom:2px solid #ddd;
background:#fff;
margin-bottom:10px;
font-weight:500
}
tr.pa-sec-elems-tr{
border:none
}
tr.pa-sec-elems-tr th{
padding-bottom:0
}
tr.pa-sec-elems-tr th h1{
font-weight:700;
font-size:25px;
letter-spacing:1px;
color:#555;
margin-bottom:0
}
.pa-swal-head{
display:block;
margin-bottom:20px
}
.pa-swal-desc{
font-weight:700;
color:#0f6aa7
}
.pa-header-wrapper{
padding:20px;
overflow:hidden
}
.pa-title-left{
width:80%;
float:left
}
h1.pa-title-main{
padding:0;
line-height:1.3em;
font-size:42px;
margin-top:5px
}
.pa-title-sub{
color:#777;
font-weight:400;
margin-left:3px
}
.pa-title-right{
float:right
}
.pa-title-right img{
width:100px;
height:100px
}
.button.pa-btn{
border:none;
color:#fff;
text-align:center;
padding:3px;
max-width:250px;
height:auto;
margin-bottom:15px;
display:block;
font-weight:700;
box-shadow:none
}
.pa-btn.pa-save-button{
background-color:#1A7FC2;
margin-bottom:0;
margin-top:30px;
padding:3px 10px
}
.pa-btn.pa-save-button:hover{
background:#0e629a;
color:#fff
}
.pa-btn.pa-save-button:focus{
background:#0e629a;
color:#fff
}
.pa-settings-tabs-list{
margin:0;
border-bottom:1px solid #ccc
}
.pa-settings-tabs-list li{
display:inline-block;
margin-bottom:4px;
margin-left:.5em
}
.pa-tab-list-item{
background:#e5e5e5;
padding:9px 15px;
line-height:30px;
font-size:18px;
font-weight:700;
color:#444;
text-decoration:none;
border:1px solid #ccc;
border-bottom:none
}
.pa-tab-list-item:focus{
box-shadow:none
}
li.ui-state-default:not(.ui-state-active):hover a{
background:#fff;
color:#444
}
li.ui-state-active a{
outline:none;
color:#000;
background:transparent;
box-shadow:none;
border-bottom:1px solid #f1f1f1
}
.pa-row{
width:100%;
overflow:hidden
}
.pa-settings-tabs{
padding:15px 25px;
margin-top:-3em
}
#pa-about{
margin-top:50px
}
.pa-col-half{
width:40%;
height:auto;
float:left
}
.pa-about-panel{
width:100%;
display:inline-block;
margin-bottom:20px
}
.pa-icon-container{
float:left;
display:inline-block;
width:45px
}
.pa-icon-container i{
font-size:25px
}
.pa-text-container{
display:inline-block;
width:80%
}
.pa-text-container h4{
margin:0;
font-weight:400;
font-size:18px
}
.pa-text-container p{
line-height:22px;
color:#444;
font-size:13px;
margin:1em 0
}
.pa-elements-table{
border-collapse:collapse;
margin-top:.5em;
margin-left:5px;
width:80%;
clear:both
}
.pa-elements-table th{
vertical-align:top;
text-align:left;
padding:20px 10px 20px 0;
width:200px;
line-height:1.3;
font-weight:500
}
.pa-elements-table tr{
border-bottom:1px solid #ddd
}
.pa-elements-table td{
margin-bottom:9px;
padding:15px 10px;
line-height:1.3;
vertical-align:middle
}
.pa-elements-table .pa-element-desc{
font-weight:300;
padding-bottom:1.5em;
border-bottom:1px solid #ddd
}
.switch{
position:relative;
display:inline-block;
width:70px;
height:33px
}
.switch input{
display:none
}
.slider,.pro-slider{
position:absolute;
cursor:pointer;
top:0;
left:0;
right:0;
bottom:0;
background-color:#f2f2f2;
box-shadow:0 0 2px 1px #ccc inset;
-webkit-transition:.4s;
transition:.4s
}
.slider:before,.pro-slider:before{
position:absolute;
content:"";
height:27.5px;
width:27.5px;
left:0;
bottom:1.1px;
background:radial-gradient(farthest-corner at 14px 0px,#f0f0f0 50%,#cacaca 100%);
-webkit-transition:.4s;
transition:.4s;
padding:0;
margin:0;
border:1px solid #c6c6c6;
box-shadow:0 2.5px 5px #b8b8b9
}
input:checked + .slider{
background-color:#18a4fd;
box-shadow:0 0 2px 1px #149afd inset;
border:1px solid #149afd
}
input:focus + .slider{
box-shadow:0 0 1px #18a4fd
}
input:checked + .slider:before{
box-shadow:0 2.5px 5px #0d6fbd;
border:1px solid #0d6fbd;
-webkit-transform:translateX(40px);
-ms-transform:translateX(40px);
transform:translateX(40px)
}
.slider.round,.pro-slider.round{
border:1px solid #b8b8b9;
border-radius:34px
}
.slider.round:before,.pro-slider.round:before{
border-radius:50%
}
.pa-maps-table{
text-align:left
}
.pa-api-title{
display:inline-block;
margin:0
}
.pa-maps-table select {
width: 100%;
max-width: 100%;
}
.pa-maps-table #premium-map-api{
width: 100%;
}
.pa-maps-table tr td:first-of-type{
padding-right: 1.2em;
}
.pa-maps-table td:first-of-type .pa-api-disable-title {
margin:0.6em 0;
}
.pa-api-disable-title label,.pa-is-beta label{
margin-right:15px
}
.pa-api-disable-title span,.pa-is-beta span{
font-weight:400
}
.pa-maps-api-notice{
margin:0.5em 0
}
.pa-api-title input{
margin-top:10px;
font-size:normal;
font-weight:400;
width:400px;
margin-left:30px
}
#pa-maintenance{
margin-top:30px
}
.pa-beta-table tr{
text-align:left
}
.pa-roll-back,.pa-beta-test{
text-align:left;
font-size:20px;
font-weight:400;
margin-top:15px;
margin-bottom:10px
}
.pa-beta-test{
margin-top:0
}
.pa-roll-back-span,.pa-beta-test-span{
line-height:22px;
color:#444;
font-size:13px;
margin:0;
font-weight:400
}
.pa-roll-row,.pa-beta-row{
float:left
}
.pa-beta-row{
margin-top:13px
}
.pa-roll-row th,.pa-beta-row th{
vertical-align:top;
text-align:left;
padding:20px 10px 20px 0;
width:200px;
line-height:1.3
}
.pa-roll-row td{
padding:15px 10px
}
.pa-beta-row td{
padding:22px 10px
}
.pa-roll-row .pa-rollback-button{
box-shadow:0 1px 0 #ccc;
color:#555;
border:1px solid #ccc;
background:#f7f7f7;
vertical-align:top;
margin:0;
padding:0 10px 1px
}
.pa-roll-row .pa-rollback-button:hover{
background:#fafafa;
border-color:#999;
color:#23282d
}
.pa-roll-row .pa-roll-desc{
font-style:italic;
color:red;
margin-top:4px
}
.pa-beta-row .pa-beta-desc{
font-style:italic;
margin-top:4px
}
.pa-sys-info-tab{
background:#f7f7f7;
margin:8px;
border:2px solid #ddd;
border-radius:3px;
padding:0
}
.pa-system-info-container{
padding:10px
}
.pa-sys-info-tab .pa-sys-info-title{
margin:0;
margin-bottom:0;
padding:10px;
border-bottom:2px solid #ddd;
background:#fff;
margin-bottom:10px;
font-weight:500
}
tr.pa-sec-elems-tr{
border:none
}
tr.pa-sec-elems-tr th{
padding-bottom:0
}
tr.pa-sec-elems-tr th h1{
font-weight:700;
font-size:25px;
letter-spacing:1px;
color:#555;
margin-bottom:0
}
.pa-swal-head{
display:block;
margin-bottom:20px
}
.pa-swal-desc{
font-weight:700;
color:#0f6aa7
}
.error.pa-notice-wrap {
display: flex;
border: none;
padding: 0;
margin: 0;
min-height: 120px;
padding-left: 1em;
align-items: center;
}
.error.pa-notice-wrap div {
padding: 0;
margin: 0;
}
.error.pa-notice-wrap .pa-img-wrap {
display: flex;
align-items: center;
min-height: 120px;
padding: 0 0.7em;
}
.error.pa-black-notice,
.error.pa-black-notice .pa-img-wrap {
min-height: auto;
}
.pa-new-feature-notice .pa-text-wrap {
display: -ms-flexbox;
display: -webkit-flex;
display: -moz-flex;
display: -ms-flex;
display: flex;
align-items: center;
padding: 10px 0 10px 10px;
}
.pa-new-feature-notice .pa-text-wrap .pa-notice-logo {
width: 40px;
margin-left: 0.8em;
}
.pa-new-feature-notice .pa-text-wrap .pa-notice-close {
text-decoration: none;
margin-right: 1em;
margin-right: auto;
}
.error .pa-text-wrap a:focus {
box-shadow: none;
outline: none;
}
.error.pa-notice-wrap .pa-text-wrap {
padding-top: 0.3em;
}
.error.pa-notice-wrap .pa-img-wrap img {
width: 40px;
}
.error.pa-notice-wrap .pa-text-wrap a {
margin-left: 0.3em;
text-transform: uppercase;
font-weight: 500;
font-style: normal;
}
.error.pa-notice-wrap .pa-text-wrap a i {
margin-left: 0.1em;
margin-top: 0.1em;
}
.error.pa-notice-wrap .pa-text-wrap a:first-of-type {
background: #0f6aa7
}
.error.pa-black-notice .pa-text-wrap a:first-of-type {
background: transparent;
text-transform: none;
}
.error .pa-text-wrap a {
margin: 0;
}
.pa-notice-wrap .pa-notice-close {
-webkit-flex-basis: 56%;
-ms-flex-preferred-size: 56%;
flex-basis: 56%;
}
.pa-notice-close a:focus {
outline: none;
box-shadow: none;
}
.pa-notice-close span {
float: left;
text-decoration: none;
}
.error.pa-notice-wrap .pa-text-wrap a:not(:first-of-type) {
margin-right: 0.3em;
}
\ No newline at end of file
.error.pa-notice-wrap {
display: flex;
border: none;
padding: 0;
margin: 0;
min-height: 120px;
padding-right: 1em;
align-items: center;
}
.error.pa-notice-wrap div {
padding: 0;
margin: 0;
}
.error.pa-notice-wrap .pa-img-wrap {
display: flex;
align-items: center;
min-height: 120px;
padding: 0 0.7em;
}
.error.pa-black-notice,
.error.pa-black-notice .pa-img-wrap {
min-height: auto;
}
.pa-new-feature-notice .pa-text-wrap {
display: -ms-flexbox;
display: -webkit-flex;
display: -moz-flex;
display: -ms-flex;
display: flex;
align-items: center;
padding: 10px 10px 10px 0;
}
.pa-new-feature-notice .pa-text-wrap .pa-notice-logo {
width: 40px;
margin-right: 0.8em;
}
.pa-new-feature-notice .pa-text-wrap .pa-notice-close {
text-decoration: none;
margin-left: 1em;
margin-left: auto;
}
.error .pa-text-wrap a:focus {
box-shadow: none;
outline: none;
}
.error.pa-notice-wrap .pa-text-wrap {
padding-top: 0.3em;
}
.error.pa-notice-wrap .pa-img-wrap img {
width: 40px;
}
.error.pa-notice-wrap .pa-text-wrap a {
margin-right: 0.3em;
text-transform: uppercase;
font-weight: 500;
font-style: normal;
}
.error.pa-notice-wrap .pa-text-wrap a i {
margin-right: 0.1em;
margin-top: 0.1em;
}
.error.pa-notice-wrap .pa-text-wrap a:first-of-type {
background: #0f6aa7
}
.error.pa-black-notice .pa-text-wrap a:first-of-type {
background: transparent;
text-transform: none;
}
.error .pa-text-wrap a {
margin: 0;
}
.pa-notice-wrap .pa-notice-close {
-webkit-flex-basis: 56%;
-ms-flex-preferred-size: 56%;
flex-basis: 56%;
}
.pa-notice-close a:focus {
outline: none;
box-shadow: none;
}
.pa-notice-close span {
float: right;
text-decoration: none;
}
.error.pa-notice-wrap .pa-text-wrap a:not(:first-of-type) {
margin-left: 0.3em;
}
\ No newline at end of file
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>Generated by IcoMoon</metadata>
<defs>
<font id="icomoon" horiz-adv-x="1024">
<font-face units-per-em="1024" ascent="960" descent="-64" />
<missing-glyph horiz-adv-x="1024" />
<glyph unicode="&#x20;" horiz-adv-x="512" d="" />
<glyph unicode="&#xe900;" glyph-name="pa-admin-icon" d="M918.187 628.907c0-13.653-13.653-27.307-27.307-27.307h-249.173c-13.653 0-30.72 10.24-34.133 23.893l-81.92 256c-3.413 13.653 3.413 23.893 6.827 23.893s17.067-6.827 30.72-17.067l314.027-180.907c13.653-6.827 37.547-27.307 40.96-37.547-3.413-6.827 0-27.307 0-40.96zM501.76 881.493l-81.92-256c-3.413-13.653-20.48-23.893-34.133-23.893h-252.587c-13.653 0-27.307 13.653-27.307 27.307s6.827 47.787 10.24 54.613c6.827 6.827 20.48 20.48 34.133 27.307l314.027 180.907c13.653 6.827 30.72 17.067 37.547 17.067 3.413 0 3.413-13.653 0-27.307zM723.627 103.253l-163.84-98.987c-13.653-6.827-44.373-20.48-51.2-17.067-10.24 3.413-27.307 10.24-40.96 17.067l-167.253 95.573c-13.653 6.827-13.653 20.48 0 30.72l191.147 139.947c13.653 6.827 30.72 6.827 44.373 0l191.147-139.947c10.24-6.827 10.24-20.48-3.413-27.307zM918.187 553.813v-286.72c0-13.653-6.827-47.787-10.24-54.613-6.827-6.827-20.48-17.067-34.133-27.307l-81.92-44.373c-13.653-6.827-27.307-3.413-30.72 10.24l-75.093 228.693c-3.413 13.653 0 34.133 13.653 40.96l197.973 143.36c10.24 10.24 20.48 6.827 20.48-10.24zM337.92 383.147l-75.093-228.693c-3.413-13.653-20.48-20.48-30.72-10.24l-78.507 47.787c-13.653 6.827-37.547 27.307-40.96 37.547s-6.827 27.307-6.827 44.373v286.72c0 13.653 10.24 20.48 20.48 10.24l197.973-143.36c13.653-13.653 17.067-30.72 13.653-44.373z" />
</font></defs></svg>
\ No newline at end of file
@font-face {
font-family: 'pa-icon';
src: url('pa-icon.eot?uo4nkm');
src: url('pa-icon.eot?uo4nkm#iefix') format('embedded-opentype'),
url('pa-icon.ttf?uo4nkm') format('truetype'),
url('pa-icon.woff?uo4nkm') format('woff'),
url('pa-icon.svg?uo4nkm#pa-elements') format('svg');
font-weight: normal;
font-style: normal;
}
.toplevel_page_premium-addons > div.wp-menu-image::before {
position: relative;
top: 5px;
content: "\e900";
/* use !important to prevent issues with browser extensions that change fonts */
font-family: 'pa-icon' !important;
speak: none;
font-style: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
/* Better Font Rendering =========== */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-size: 21px;
}
#toplevel_page_premium-addons a[href="admin.php?page=premium-addons-pro"] {
color:#1A7FC2;
}
#toplevel_page_premium-addons a[href="admin.php?page=premium-addons-pro"]:hover {
color:#1A7FC2;
}
#toplevel_page_premium-addons li.current a[href="admin.php?page=premium-addons-pro"] {
color:#1A7FC2;
}
#toplevel_page_premium-addons li.current a[href="admin.php?page=premium-addons-pro"]:hover {
color:#1A7FC2;
}
\ No newline at end of file
( function ( $ ) {
var redirectionLink = " https://premiumaddons.com/pro/?utm_source=wp-menu&utm_medium=wp-dash&utm_campaign=get-pro&utm_term=";
"use strict";
$(".pa-checkbox").on("click", function() {
if($(this).prop("checked") == true) {
$(".pa-elements-table input").prop("checked", 1);
}else if($(this).prop("checked") == false){
$(".pa-elements-table input").prop("checked", 0);
}
});
$(".pro-slider").on('click', function(){
swal({
title: '<span class="pa-swal-head">Get PRO Widgets & Addons<span>',
html: 'Supercharge your Elementor with PRO widgets and addons that you won’t find anywhere else.',
type: 'warning',
showCloseButton: true,
showCancelButton: true,
cancelButtonText: "More Info",
focusConfirm: true
}).then(function(json_data) {}, function(dismiss) {
if (dismiss === 'cancel') {
window.open( redirectionLink + settings.theme, '_blank' );
}
});
});
$( 'form#pa-settings' ).on( 'submit', function(e) {
e.preventDefault();
$.ajax( {
url: settings.ajaxurl,
type: 'post',
data: {
action: 'pa_save_admin_addons_settings',
security: settings.nonce,
fields: $( 'form#pa-settings' ).serialize(),
},
success: function( response ) {
swal(
'Settings Saved!',
'Click OK to continue',
'success'
);
},
error: function() {
swal(
'Oops...',
'Something Wrong!',
);
}
} );
} );
$('form#pa-maps').on('submit',function(e){
e.preventDefault();
$.ajax( {
url: settings.ajaxurl,
type: 'post',
data: {
action: 'pa_maps_save_settings',
security: settings.nonce,
fields: $('form#pa-maps').serialize(),
},
success: function (response){
swal(
'Settings Saved!',
'Click OK to continue',
'success'
);
},
error: function(){
swal(
'Oops...',
'Something Wrong!',
);
}
});
});
$('form#pa-beta-form').on('submit',function(e){
e.preventDefault();
$.ajax( {
url: settings.ajaxurl,
type: 'post',
data: {
action: 'pa_beta_save_settings',
security: settings.nonce,
fields: $('form#pa-beta-form').serialize(),
},
success: function (response){
swal(
'Settings Saved!',
'Click OK to continue',
'success'
);
},
error: function(){
swal(
'Oops...',
'Something Wrong!',
);
}
});
});
$( '.pa-rollback-button' ).on( 'click', function( event ) {
event.preventDefault();
var $this = $( this ),
dialogsManager = new DialogsManager.Instance();
dialogsManager.createWidget( 'confirm', {
headerMessage: premiumRollBackConfirm.i18n.rollback_to_previous_version,
message: premiumRollBackConfirm.i18n.rollback_confirm,
strings: {
cancel: premiumRollBackConfirm.i18n.cancel,
confirm: premiumRollBackConfirm.i18n.yes,
},
onConfirm: function() {
$this.addClass( 'loading' );
location.href = $this.attr( 'href' );
}
} ).show();
} );
} )(jQuery);
\ No newline at end of file
( function ( $ ) {
var $noticeWrap = $( ".pa-notice-wrap" ),
notice = $noticeWrap.data('notice');
if( undefined !== notice ) {
$noticeWrap.find('.pa-notice-reset').on( "click", function() {
$noticeWrap.css('display', 'none');
$.ajax({
url: ajaxurl,
type: 'POST',
data: {
action: 'pa_reset_admin_notice',
notice: $noticeWrap.data( 'notice' )
}
});
} );
}
$(".pa-notice-close").on("click", function() {
var noticeID = $( this ).data('notice');
if( noticeID ) {
$( this ).closest('.pa-new-feature-notice').remove();
$.ajax({
url: ajaxurl,
type: 'POST',
data: {
action: 'pa_dismiss_admin_notice',
notice: noticeID
},
success: function(res) {
console.log(res);
},
error: function(err){
console.log(err);
}
});
}
});
} )(jQuery);
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
<?php
if( ! defined( 'ABSPATH' ) ) exit; //Exit if accessed directly
function pa_get_sysinfo() {
global $wpdb;
// Get theme info
$theme_data = wp_get_theme();
$theme = $theme_data->Name . ' ' . $theme_data->Version;
$return = '### <strong>Begin System Info</strong> ###' . "\n\n";
// Start with the basics...
$return .= '-- Site Info' . "\n\n";
$return .= 'Site URL: ' . site_url() . "\n";
$return .= 'Home URL: ' . home_url() . "\n";
$return .= 'Multisite: ' . (is_multisite() ? 'Yes' : 'No') . "\n";
// Theme info
$plugin = get_plugin_data(PREMIUM_ADDONS_FILE);
// Plugin configuration
$return .= "\n" . '-- Plugin Configuration' . "\n\n";
$return .= 'Name: ' . $plugin['Name'] . "\n";
$return .= 'Version: ' . $plugin['Version'] . "\n";
// WordPress configuration
$return .= "\n" . '-- WordPress Configuration' . "\n\n";
$return .= 'Version: ' . get_bloginfo('version') . "\n";
$return .= 'Language: ' . (defined('WPLANG') && WPLANG ? WPLANG : 'en_US') . "\n";
$return .= 'Permalink Structure: ' . (get_option('permalink_structure') ? get_option('permalink_structure') : 'Default') . "\n";
$return .= 'Active Theme: ' . $theme . "\n";
$return .= 'Show On Front: ' . get_option('show_on_front') . "\n";
// Only show page specs if frontpage is set to 'page'
if (get_option('show_on_front') == 'page') {
$front_page_id = get_option('page_on_front');
$blog_page_id = get_option('page_for_posts');
$return .= 'Page On Front: ' . ($front_page_id != 0 ? get_the_title($front_page_id) . ' (#' . $front_page_id . ')' : 'Unset') . "\n";
$return .= 'Page For Posts: ' . ($blog_page_id != 0 ? get_the_title($blog_page_id) . ' (#' . $blog_page_id . ')' : 'Unset') . "\n";
}
$return .= 'ABSPATH: ' . ABSPATH . "\n";
$return .= 'WP_DEBUG: ' . (defined('WP_DEBUG') ? WP_DEBUG ? 'Enabled' : 'Disabled' : 'Not set') . "\n";
$return .= 'Memory Limit: ' . WP_MEMORY_LIMIT . "\n";
$return .= 'Registered Post Stati: ' . implode(', ', get_post_stati()) . "\n";
// Get plugins that have an update
$updates = get_plugin_updates();
// WordPress active plugins
$return .= "\n" . '-- WordPress Active Plugins' . "\n\n";
$plugins = get_plugins();
$active_plugins = get_option('active_plugins', array());
foreach ($plugins as $plugin_path => $plugin) {
if (!in_array($plugin_path, $active_plugins))
continue;
$update = (array_key_exists($plugin_path, $updates)) ? ' (needs update - ' . $updates[$plugin_path]->update->new_version . ')' : '';
$return .= $plugin['Name'] . ': ' . $plugin['Version'] . $update . "\n";
}
// WordPress inactive plugins
$return .= "\n" . '-- WordPress Inactive Plugins' . "\n\n";
foreach ($plugins as $plugin_path => $plugin) {
if (in_array($plugin_path, $active_plugins))
continue;
$update = (array_key_exists($plugin_path, $updates)) ? ' (needs update - ' . $updates[$plugin_path]->update->new_version . ')' : '';
$return .= $plugin['Name'] . ': ' . $plugin['Version'] . $update . "\n";
}
if (is_multisite()) {
// WordPress Multisite active plugins
$return .= "\n" . '-- Network Active Plugins' . "\n\n";
$plugins = wp_get_active_network_plugins();
$active_plugins = get_site_option('active_sitewide_plugins', array());
foreach ($plugins as $plugin_path) {
$plugin_base = plugin_basename($plugin_path);
if (!array_key_exists($plugin_base, $active_plugins))
continue;
$update = (array_key_exists($plugin_path, $updates)) ? ' (needs update - ' . $updates[$plugin_path]->update->new_version . ')' : '';
$plugin = get_plugin_data($plugin_path);
$return .= $plugin['Name'] . ': ' . $plugin['Version'] . $update . "\n";
}
}
// Server configuration (really just versioning)
$return .= "\n" . '-- Webserver Configuration' . "\n\n";
$return .= 'PHP Version: ' . PHP_VERSION . "\n";
$return .= 'MySQL Version: ' . $wpdb->db_version() . "\n";
$return .= 'Webserver Info: ' . $_SERVER['SERVER_SOFTWARE'] . "\n";
// PHP configs... now we're getting to the important stuff
$return .= "\n" . '-- PHP Configuration' . "\n\n";
$return .= 'Memory Limit: ' . ini_get('memory_limit') . "\n";
$return .= 'Upload Max Size: ' . ini_get('upload_max_filesize') . "\n";
$return .= 'Post Max Size: ' . ini_get('post_max_size') . "\n";
$return .= 'Upload Max Filesize: ' . ini_get('upload_max_filesize') . "\n";
$return .= 'Time Limit: ' . ini_get('max_execution_time') . "\n";
$return .= 'Max Input Vars: ' . ini_get('max_input_vars') . "\n";
$return .= 'Display Errors: ' . (ini_get('display_errors') ? 'On (' . ini_get('display_errors') . ')' : 'N/A') . "\n";
$return = apply_filters('edd_sysinfo_after_php_config', $return);
// PHP extensions and such
$return .= "\n" . '-- PHP Extensions' . "\n\n";
$return .= 'cURL: ' . (function_exists('curl_init') ? 'Supported' : 'Not Supported') . "\n";
$return .= 'fsockopen: ' . (function_exists('fsockopen') ? 'Supported' : 'Not Supported') . "\n";
$return .= 'SOAP Client: ' . (class_exists('SoapClient') ? 'Installed' : 'Not Installed') . "\n";
$return .= 'Suhosin: ' . (extension_loaded('suhosin') ? 'Installed' : 'Not Installed') . "\n";
$return .= "\n" . '### End System Info ###';
return $return;
}
<?php
if( ! defined( 'ABSPATH' ) ) exit; //Exit if accessed directly
/**
*
* Fire the rollback function
*
*/
function post_premium_addons_rollback() {
check_admin_referer( 'premium_addons_rollback' );
$plugin_slug = basename( PREMIUM_ADDONS_FILE, '.php' );
$pa_rollback = new PA_Rollback(
[
'version' => PREMIUM_ADDONS_STABLE_VERSION,
'plugin_name' => PREMIUM_ADDONS_BASENAME,
'plugin_slug' => $plugin_slug,
'package_url' => sprintf( 'https://downloads.wordpress.org/plugin/%s.%s.zip', $plugin_slug, PREMIUM_ADDONS_STABLE_VERSION ),
]
);
$pa_rollback->run();
wp_die(
'', __( 'Rollback to Previous Version', 'premium-addons-for-elementor' ), [
'response' => 200,
]
);
}
<?php
if ( ! defined( 'ABSPATH' ) ) exit;
class PA_Rollback {
protected $package_url;
protected $version;
protected $plugin_name;
protected $plugin_slug;
public function __construct( $args = [] ) {
foreach ( $args as $key => $value ) {
$this->{$key} = $value;
}
}
private function print_inline_style() {
?>
<style>
.wrap {
overflow: hidden;
}
h1 {
background: #6ec1e4;
text-align: center;
color: #fff !important;
padding: 70px !important;
text-transform: uppercase;
letter-spacing: 1px;
}
h1 img {
max-width: 300px;
display: block;
margin: auto auto 50px;
}
</style>
<?php
}
protected function apply_package() {
$update_plugins = get_site_transient( 'update_plugins' );
if ( ! is_object( $update_plugins ) ) {
$update_plugins = new \stdClass();
}
$plugin_info = new \stdClass();
$plugin_info->new_version = $this->version;
$plugin_info->slug = $this->plugin_slug;
$plugin_info->package = $this->package_url;
$plugin_info->url = 'https://premiumaddons.com/';
$update_plugins->response[ $this->plugin_name ] = $plugin_info;
set_site_transient( 'update_plugins', $update_plugins );
}
protected function upgrade() {
require_once( ABSPATH . 'wp-admin/includes/class-wp-upgrader.php' );
$logo_url = PREMIUM_ADDONS_URL . 'admin/images/premium-addons-logo.png';
$upgrader_args = [
'url' => 'update.php?action=upgrade-plugin&plugin=' . rawurlencode( $this->plugin_name ),
'plugin' => $this->plugin_name,
'nonce' => 'upgrade-plugin_' . $this->plugin_name,
'title' => '<img src="' . $logo_url . '" alt="Premium Addons">' . __( 'Rolling Back to Version ' . PREMIUM_ADDONS_STABLE_VERSION, 'premium-addons-for-elementor' ),
];
$this->print_inline_style();
$upgrader = new \Plugin_Upgrader( new \Plugin_Upgrader_Skin( $upgrader_args ) );
$upgrader->upgrade( $this->plugin_name );
}
public function run() {
$this->apply_package();
$this->upgrade();
}
}
<?php
namespace PremiumAddons\Admin\Includes;
use PremiumAddons\Helper_Functions;
if ( ! defined( 'ABSPATH' ) ) exit;
class Papro_Actions {
public function create_pro_menus() {
add_submenu_page(
'premium-addons',
'',
'<span class="dashicons dashicons-star-filled" style="font-size: 17px"></span> ' . __( 'Get PRO Widgets & Addons', 'premium-addons-for-elementor' ),
'manage_options',
'premium-addons-pro',
[ $this, 'handle_custom_redirects' ]
);
}
public function handle_custom_redirects() {
$theme_slug = Helper_Functions::get_installed_theme();
if ( empty( $_GET['page'] ) ) {
return;
}
if ( 'premium-addons-pro' === $_GET['page'] ) {
$url = sprintf('https://premiumaddons.com/pro/?utm_source=wp-menu&utm_medium=wp-dash&utm_campaign=get-pro&utm_term=%s', $theme_slug );
wp_redirect( $url );
die();
}
}
public function change_admin_menu_name() {
global $submenu;
if( isset($submenu['premium-addons'] ) ) {
$submenu['premium-addons'][0][0] = __( 'Settings', 'premium-addons-for-elementor' );
}
}
public function on_admin_init() {
$this->handle_custom_redirects();
}
public function __construct() {
add_action( 'admin_init', [ $this, 'on_admin_init' ] );
if( ! defined('PREMIUM_PRO_ADDONS_VERSION') )
add_action( 'admin_menu', array ( $this,'create_pro_menus' ), 100 );
add_action( 'admin_menu', array ( $this, 'change_admin_menu_name'), 100 );
}
}
\ No newline at end of file
<?php
namespace PremiumAddons\Admin\Includes;
use PremiumAddons\Helper_Functions;
if ( ! defined( 'ABSPATH' ) ) exit;
class Plugin_Info {
public function create_about_menu() {
if ( ! Helper_Functions::is_hide_about() ) {
add_submenu_page(
'premium-addons',
'',
__('About','premium-addons-for-elementor'),
'manage_options',
'premium-addons-about',
[ $this, 'pa_about_page' ]
);
}
}
public function pa_about_page() {
$theme_name = Helper_Functions::get_installed_theme();
$url = sprintf('https://premiumaddons.com/pro/?utm_source=about-page&utm_medium=wp-dash&utm_campaign=get-pro&utm_term=%s', $theme_name );
$support_url = sprintf('https://premiumaddons.com/support/?utm_source=about-page&utm_medium=wp-dash&utm_campaign=get-support&utm_term=%s', $theme_name );
?>
<div class="wrap">
<div class="response-wrap"></div>
<div class="pa-header-wrapper">
<div class="pa-title-left">
<h1 class="pa-title-main"><?php echo Helper_Functions::name(); ?></h1>
<h3 class="pa-title-sub"><?php echo sprintf(__('Thank you for using %s. This plugin has been developed by %s and we hope you enjoy using it.','premium-addons-for-elementor'), Helper_Functions::name(),Helper_Functions::author()); ?></h3>
</div>
<?php if( ! Helper_Functions::is_hide_logo() ) : ?>
<div class="pa-title-right">
<img class="pa-logo" src="<?php echo PREMIUM_ADDONS_URL . 'admin/images/premium-addons-logo.png';?>">
</div>
<?php endif; ?>
</div>
<div class="pa-settings-tabs">
<div id="pa-about" class="pa-settings-tab">
<div class="pa-row">
<div class="pa-col-half">
<div class="pa-about-panel">
<div class="pa-icon-container">
<i class="dashicons dashicons-info abt-icon-style"></i>
</div>
<div class="pa-text-container">
<h4><?php echo __('What is Premium Addons?', 'premium-addons-for-elementor'); ?></h4>
<p><?php echo __('Premium Addons for Elementor extends Elementor Page Builder capabilities with many fully customizable widgets and addons that help you to build impressive websites with no coding required.', 'premium-addons-for-elementor'); ?></p>
<?php if( ! defined('PREMIUM_PRO_ADDONS_VERSION') ) : ?>
<p><?php echo __('Get more widgets and addons with ', 'premium-addons-for-elementor'); ?><strong><?php echo __('Premium Addons Pro', 'premium-addons-for-elementor'); ?></strong> <a href="<?php echo esc_url( $url ); ?>" target="_blank" ><?php echo __('Click Here', 'premium-addons-for-elementor'); ?></a><?php echo __(' to know more.', 'premium-addons-for-elementor'); ?></p>
<?php endif; ?>
</div>
</div>
</div>
<div class="pa-col-half">
<div class="pa-about-panel">
<div class="pa-icon-container">
<i class="dashicons dashicons-universal-access-alt abt-icon-style"></i>
</div>
<div class="pa-text-container">
<h4><?php echo __('Docs and Support', 'premium-addons-for-elementor'); ?></h4>
<p><?php echo __('It’s highly recommended to check out documentation and FAQ before using this plugin. ', 'premium-addons-for-elementor'); ?><a target="_blank" href="<?php echo esc_url( $support_url ); ?>"><?php echo __('Click Here', 'premium-addons-for-elementor'); ?></a><?php echo __(' for more details. You can also join our ', 'premium-addons-for-elementor'); ?><a href="https://www.facebook.com/groups/PremiumAddons" target="_blank"><?php echo __('Facebook Group', 'premium-addons-for-elementor'); ?></a><?php echo __(' and Our ', 'premium-addons-for-elementor'); ?><a href="https://my.leap13.com/forums/" target="_blank"><?php echo __('Community Forums', 'premium-addons-for-elementor'); ?></a></p>
</div>
</div>
</div>
</div>
<?php if( ! Helper_Functions::is_hide_rate() ) : ?>
<div>
<p><?php echo __('Did you like Premium Addons for Elementor Plugin? Please ', 'premium-addons-for-elementor'); ?><a href="https://wordpress.org/support/plugin/premium-addons-for-elementor/reviews/#new-post" target="_blank"><?php echo __('Click Here to Rate it ★★★★★', 'premium-addons-for-elementor'); ?></a></p>
</div>
<?php endif; ?>
</div>
</div>
</div>
<?php }
public function __construct() {
add_action( 'admin_menu', array ($this,'create_about_menu' ), 100 );
}
}
\ No newline at end of file
<?php
namespace PremiumAddons\Admin\Includes;
use PremiumAddons\Helper_Functions;
if( ! defined( 'ABSPATH' ) ) exit;
class Config_Data {
public function __construct() {
add_action( 'admin_menu', array ($this,'create_sys_info_menu' ), 100 );
}
public function create_sys_info_menu() {
add_submenu_page(
'premium-addons',
'',
__( 'System Info','premium-addons-for-elementor' ),
'manage_options',
'premium-addons-sys',
[$this, 'pa_sys_info_page']
);
}
public function pa_sys_info_page() {
?>
<div class="wrap">
<div class="response-wrap"></div>
<div class="pa-header-wrapper">
<div class="pa-title-left">
<h1 class="pa-title-main"><?php echo Helper_Functions::name(); ?></h1>
<h3 class="pa-title-sub"><?php echo sprintf( __( 'Thank you for using %s. This plugin has been developed by %s and we hope you enjoy using it.','premium-addons-for-elementor' ), Helper_Functions::name(), Helper_Functions::author() ); ?></h3>
</div>
<?php if( ! Helper_Functions::is_hide_logo() ) : ?>
<div class="pa-title-right">
<img class="pa-logo" src="<?php echo PREMIUM_ADDONS_URL . 'admin/images/premium-addons-logo.png'; ?>">
</div>
<?php endif; ?>
</div>
<div class="pa-settings-tabs pa-sys-info-tab">
<div id="pa-system" class="pa-settings-tab">
<div class="pa-row">
<h3 class="pa-sys-info-title"><?php echo __('System setup information useful for debugging purposes.','premium-addons-for-elementor');?></h3>
<div class="pa-system-info-container">
<?php
require_once ( PREMIUM_ADDONS_PATH . 'admin/includes/dep/info.php');
echo nl2br( pa_get_sysinfo() );
?>
</div>
</div>
</div>
<?php if( ! Helper_Functions::is_hide_rate() ) : ?>
<div>
<p><?php echo __('Did you like Premium Addons for Elementor Plugin? Please ', 'premium-addons-for-elementor'); ?><a href="https://wordpress.org/support/plugin/premium-addons-for-elementor/reviews/#new-post" target="_blank"><?php echo __('Click Here to Rate it ★★★★★', 'premium-addons-for-elementor'); ?></a></p>
</div>
<?php endif; ?>
</div>
</div>
<?php }
}
<?php
namespace PremiumAddons\Admin\Includes;
use PremiumAddons\Helper_Functions;
if( ! defined( 'ABSPATH' ) ) exit;
class Version_Control {
public $pa_beta_keys = [ 'is-beta-tester' ];
private $pa_beta_default_settings;
private $pa_beta_settings;
private $pa_beta_get_settings;
public function __construct() {
add_action( 'admin_menu', array ($this,'create_version_control_menu' ), 100 );
add_action( 'wp_ajax_pa_beta_save_settings', array( $this, 'pa_beta_save_settings' ) );
}
public function create_version_control_menu() {
if ( ! Helper_Functions::is_hide_version_control() ) {
add_submenu_page(
'premium-addons',
'',
__('Version Control','premium-addons-for-elementor'),
'manage_options',
'premium-addons-version',
[$this, 'pa_version_page']
);
}
}
public function pa_version_page() {
$js_info = array(
'ajaxurl' => admin_url( 'admin-ajax.php' ),
'nonce' => wp_create_nonce( 'pa-version-control' ),
);
wp_localize_script( 'pa-admin-js', 'settings', $js_info );
$this->pa_beta_default_settings = array_fill_keys( $this->pa_beta_keys, true );
$this->pa_beta_get_settings = get_option( 'pa_beta_save_settings', $this->pa_beta_default_settings );
$pa_beta_new_settings = array_diff_key( $this->pa_beta_default_settings, $this->pa_beta_get_settings );
if( ! empty( $pa_beta_new_settings ) ) {
$pa_beta_updated_settings = array_merge( $this->pa_beta_get_settings, $pa_beta_new_settings );
update_option( 'pa_beta_save_settings', $pa_beta_updated_settings );
}
$this->pa_beta_get_settings = get_option( 'pa_beta_save_settings', $this->pa_beta_default_settings );
?>
<div class="wrap">
<div class="response-wrap"></div>
<form action="" method="POST" id="pa-beta-form" name="pa-beta-form">
<div class="pa-header-wrapper">
<div class="pa-title-left">
<h1 class="pa-title-main"><?php echo Helper_Functions::name(); ?></h1>
<h3 class="pa-title-sub"><?php echo sprintf(__('Thank you for using %s. This plugin has been developed by %s and we hope you enjoy using it.','premium-addons-for-elementor'), Helper_Functions::name(), Helper_Functions::author() ); ?></h3>
</div>
<?php if( ! Helper_Functions::is_hide_logo() ) : ?>
<div class="pa-title-right">
<img class="pa-logo" src="<?php echo PREMIUM_ADDONS_URL . 'admin/images/premium-addons-logo.png'; ?>">
</div>
<?php endif; ?>
</div>
<div class="pa-settings-tabs">
<div id="pa-maintenance" class="pa-settings-tab">
<div class="pa-row">
<table class="pa-beta-table">
<tr>
<th>
<h4 class="pa-roll-back"><?php echo __('Rollback to Previous Version', 'premium-addons-for-elementor'); ?></h4>
<span class="pa-roll-back-span"><?php echo sprintf( __('Experiencing an issue with Premium Addons for Elementor version %s? Rollback to a previous version before the issue appeared.', 'premium-addons-for-elementor'), PREMIUM_ADDONS_VERSION ); ?></span>
</th>
</tr>
<tr class="pa-roll-row">
<th><?php echo __('Rollback Version', 'premium-addons-for-elementor'); ?></th>
<td>
<div><?php echo sprintf( '<a target="_blank" href="%1$s" class="button pa-btn pa-rollback-button elementor-button-spinner">%2$s</a>', wp_nonce_url( admin_url( 'admin-post.php?action=premium_addons_rollback' ), 'premium_addons_rollback' ), __('Rollback to Version ' . PREMIUM_ADDONS_STABLE_VERSION, 'premium-addons-for-elementor') ); ?></div>
<p class="pa-roll-desc">
<span><?php echo __('Warning: Please backup your database before making the rollback.', 'premium-addons-for-elementor'); ?></span>
</p>
</td>
</tr>
<tr>
<th>
<h4 class="pa-beta-test"><?php echo __('Become a Beta Tester', 'premium-addons-for-elementor'); ?></h4>
<span class="pa-beta-test-span"><?php echo __('Turn-on Beta Tester, to get notified when a new beta version of Premium Addons for Elementor. The Beta version will not install automatically. You always have the option to ignore it.', 'premium-addons-for-elementor'); ?></span>
</th>
</tr>
<tr class="pa-beta-row">
<th><?php echo __('Beta Tester','premium-addons-for-elementor'); ?></th>
<td>
<div><input name="is-beta-tester" id="is-beta-tester" type="checkbox" <?php checked(1, $this->pa_beta_get_settings['is-beta-tester'], true) ?>><span><?php echo __('Check this box to get updates for beta versions','premium-addons-for-elementor'); ?></span></div>
<p class="pa-beta-desc"><span><?php echo __('Please Note: We do not recommend updating to a beta version on production sites.', 'premium-addons-for-elementor'); ?></span></p>
</td>
</tr>
</table>
<input type="submit" value="<?php echo __('Save Settings', 'premium-addons-for-elementor'); ?>" class="button pa-btn pa-save-button">
</div>
</div>
</div>
</form>
</div>
<?php }
public function pa_beta_save_settings() {
check_ajax_referer('pa-version-control', 'security');
if( isset( $_POST['fields'] ) ) {
parse_str( $_POST['fields'], $settings );
} else {
return;
}
$this->pa_beta_settings = array(
'is-beta-tester' => intval( $settings['is-beta-tester'] ? 1 : 0 ),
);
update_option( 'pa_beta_save_settings', $this->pa_beta_settings );
return true;
}
}
\ No newline at end of file
<?php
namespace PremiumAddons\Admin\Settings;
use PremiumAddons\Helper_Functions;
if( ! defined( 'ABSPATH' ) ) exit;
class Maps {
public static $pa_maps_keys = [ 'premium-map-api', 'premium-map-disable-api', 'premium-map-cluster', 'premium-map-locale' ];
private $pa_maps_default_settings;
private $pa_maps_settings;
private $pa_maps_get_settings;
public function __construct() {
add_action( 'admin_menu', array ( $this,'create_maps_menu' ), 100 );
add_action( 'wp_ajax_pa_maps_save_settings', array( $this, 'pa_save_maps_settings' ) );
}
public function create_maps_menu() {
add_submenu_page(
'premium-addons',
'',
__('Google Maps', 'premium-addons-for-elementor'),
'manage_options',
'premium-addons-maps',
[ $this, 'pa_maps_page' ]
);
}
public function pa_maps_page() {
$js_info = array(
'ajaxurl' => admin_url( 'admin-ajax.php' ),
'nonce' => wp_create_nonce( 'pa-maps' ),
);
wp_localize_script( 'pa-admin-js', 'settings', $js_info );
$this->pa_maps_default_settings = $this->get_default_keys();
$this->pa_maps_get_settings = $this->get_enabled_keys();
$pa_maps_new_settings = array_diff_key( $this->pa_maps_default_settings, $this->pa_maps_get_settings );
if( ! empty( $pa_maps_new_settings ) ) {
$pa_maps_updated_settings = array_merge( $this->pa_maps_get_settings, $pa_maps_new_settings );
update_option( 'pa_maps_save_settings', $pa_maps_updated_settings );
}
$this->pa_maps_get_settings = get_option( 'pa_maps_save_settings', $this->pa_maps_default_settings );
$settings = $this->pa_maps_get_settings;
$locales = Helper_Functions::get_google_languages();
?>
<div class="wrap">
<div class="response-wrap"></div>
<form action="" method="POST" id="pa-maps" name="pa-maps">
<div class="pa-header-wrapper">
<div class="pa-title-left">
<h1 class="pa-title-main"><?php echo Helper_Functions::name(); ?></h1>
<h3 class="pa-title-sub"><?php echo sprintf(__('Thank you for using %s. This plugin has been developed by %s and we hope you enjoy using it.','premium-addons-for-elementor'), Helper_Functions::name(), Helper_Functions::author()); ?></h3>
</div>
<?php if( ! Helper_Functions::is_hide_logo()) : ?>
<div class="pa-title-right">
<img class="pa-logo" src="<?php echo PREMIUM_ADDONS_URL . 'admin/images/premium-addons-logo.png';?>">
</div>
<?php endif; ?>
</div>
<div class="pa-settings-tabs">
<div id="pa-maps-api" class="pa-maps-tab">
<div class="pa-row">
<table class="pa-maps-table">
<tr>
<p class="pa-maps-api-notice">
<?php echo esc_html( Helper_Functions::get_prefix() ) . __(' Maps Element requires Google API key to be entered below. If you don’t have one, click ', 'premium-addons-for-elementor'); ?><a href="https://premiumaddons.com/docs/getting-your-api-key-for-google-reviews/" target="_blank"><?php echo __('here', 'premium-addons-for-elementor'); ?></a><?php echo __(' to get your key.', 'premium-addons-for-elementor'); ?>
</p>
</tr>
<tr>
<td>
<h4 class="pa-api-title"><?php echo __('Google Maps API Key:', 'premium-addons-for-elementor'); ?></h4>
</td>
<td>
<input name="premium-map-api" id="premium-map-api" type="text" placeholder="API Key" value="<?php echo esc_attr( $settings['premium-map-api'] ); ?>">
</td>
</tr>
<tr>
<td>
<h4 class="pa-api-disable-title"><?php echo __('Google Maps Localization Language:', 'premium-addons-for-elementor'); ?></h4>
</td>
<td>
<select name="premium-map-locale" id="premium-map-locale" class="placeholder placeholder-active">
<option value=""><?php _e( 'Default', 'premium-addons-for-elementor' ); ?></option>
<?php foreach ( $locales as $key => $value ) { ?>
<?php
$selected = '';
if ( $key === $settings['premium-map-locale'] ) {
$selected = 'selected="selected" ';
}
?>
<option value="<?php echo esc_attr( $key ); ?>" <?php echo $selected; ?>><?php echo esc_attr( $value ); ?></option>
<?php } ?>
</select>
</td>
</tr>
<tr>
<td>
<h4 class="pa-api-disable-title"><?php echo __('Load Maps API JS File:','premium-addons-for-elementor'); ?></h4>
</td>
<td>
<input name="premium-map-disable-api" id="premium-map-disable-api" type="checkbox" <?php checked(1, $settings['premium-map-disable-api'], true) ?>><span><?php echo __('This will load API JS file if it\'s not loaded by another theme or plugin', 'premium-addons-for-elementor'); ?></span>
</td>
</tr>
<tr>
<td>
<h4 class="pa-api-disable-title"><?php echo __('Load Markers Clustering JS File:','premium-addons-for-elementor'); ?></h4>
</td>
<td>
<input name="premium-map-cluster" id="premium-map-cluster" type="checkbox" <?php checked(1, $settings['premium-map-cluster'], true) ?>><span><?php echo __('This will load the JS file for markers clusters', 'premium-addons-for-elementor'); ?></span>
</td>
</tr>
</table>
<input type="submit" value="<?php echo __('Save Settings', 'premium-addons-for-elementor'); ?>" class="button pa-btn pa-save-button">
<?php if( ! Helper_Functions::is_hide_rate() ) : ?>
<div>
<p><?php echo __('Did you like Premium Addons for Elementor Plugin? Please ', 'premium-addons-for-elementor'); ?><a href="https://wordpress.org/support/plugin/premium-addons-for-elementor/reviews/#new-post" target="_blank"><?php echo __('Click Here to Rate it ★★★★★', 'premium-addons-for-elementor'); ?></a></p>
</div>
<?php endif; ?>
</div>
</div>
</div>
</form>
</div>
<?php }
public static function get_default_keys() {
$default_keys = array_fill_keys( self::$pa_maps_keys, true );
return $default_keys;
}
public static function get_enabled_keys() {
$enabled_keys = get_option( 'pa_maps_save_settings', self::get_default_keys() );
return $enabled_keys;
}
public function pa_save_maps_settings() {
check_ajax_referer('pa-maps', 'security');
if( isset( $_POST['fields'] ) ) {
parse_str( $_POST['fields'], $settings );
} else {
return;
}
$this->pa_maps_settings = array(
'premium-map-api' => sanitize_text_field( $settings['premium-map-api'] ),
'premium-map-disable-api' => intval( $settings['premium-map-disable-api'] ? 1 : 0 ),
'premium-map-cluster' => intval( $settings['premium-map-cluster'] ? 1 : 0 ),
'premium-map-locale' => sanitize_text_field( $settings['premium-map-locale'] )
);
update_option( 'pa_maps_save_settings', $this->pa_maps_settings );
return true;
}
}
\ No newline at end of file
@font-face {
font-family: 'pa-elements';
src: url('../fonts/pa-elements.eot?6nhz6k');
src: url('../fonts/pa-elements.eot?6nhz6k#iefix') format('embedded-opentype'),
url('../fonts/pa-elements.ttf?6nhz6k') format('truetype'),
url('../fonts/pa-elements.woff?6nhz6k') format('woff'),
url('../fonts/pa-elements.svg?6nhz6k#pa-elements') format('svg');
font-weight: normal;
font-style: normal;
}
.elementor-element .icon {
position: relative;
}
[class^="pa-"], [class*=" pa-"] {
/* use !important to prevent issues with browser extensions that change fonts */
font-family: 'pa-elements' !important;
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
/* Better Font Rendering =========== */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
/*
* Icons Badge
*/
[class^="pa-"]::after, [class*=" pa-"]::after {
content: "PA";
font-family: "Montserrat", Sans-serif;
font-weight: 700;
font-size: 10px;
opacity: 0.4;
position: absolute;
right: 0.6em;
top: 0.6em;
}
.pa-banner:before {
content: "\e902";
}
.pa-blog:before {
content: "\e903";
}
.pa-button:before {
content: "\e904";
}
.pa-carousel:before {
content: "\e905";
}
.pa-contact-form:before {
content: "\e906";
}
.pa-countdown:before {
content: "\e907";
}
.pa-counter:before {
content: "\e908";
}
.pa-dual-header:before {
content: "\e909";
}
.pa-fancy-text:before {
content: "\e90a";
}
.pa-grid-icon:before {
content: "\e90c";
}
.pa-image-button:before {
content: "\e90d";
}
.pa-image-scroll:before {
content: "\e900";
}
.pa-image-separator:before {
content: "\e90e";
}
.pa-maps:before {
content: "\e90b";
}
.pa-modal-box:before {
content: "\e90f";
}
.pa-person:before {
content: "\e910";
}
.pa-pricing-table:before {
content: "\e911";
}
.pa-progress-bar:before {
content: "\e912";
}
.pa-testimonials:before {
content: "\e913";
}
.pa-title:before {
content: "\e914";
}
.pa-vscroll:before {
content: "\e915";
}
.pa-video-box:before {
content: "\e916";
}
.editor-pa-doc {
font-style: italic;
line-height: 1.2;
font-size: 12px;
}
.elementor-panel .elementor-control-section_pa_docs .elementor-panel-heading-title.elementor-panel-heading-title,
.elementor-control-raw-html.editor-pa-doc a {
color: #0f6aa7;
}
.elementor-control-raw-html .premium-notice-bold {
font-weight: bold;
}
\ No newline at end of file
var $ = jQuery;
function getAddress(ob) {
var address = $(ob).parent().find("input").attr("value");
if ( address !== "" ) {
geocoder = new google.maps.Geocoder();
geocoder.geocode({
address: address
}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var output = $(ob).parent().find(".premium-address-result"),
latiude = results[0].geometry.location.lat(),
longitude = results[0].geometry.location.lng();
$(output).html("Latitude: " + latiude + "<br>Longitude: " + longitude + "<br>(Copy and Paste your Latitude & Longitude value below)");
$(ob).parents(".elementor-control-premium_map_notice").nextAll(".elementor-control-premium_maps_center_lat").find("input").val(latiude).trigger("input");
$(ob).parents(".elementor-control-premium_map_notice").nextAll(".elementor-control-premium_maps_center_long").find("input").val(longitude).trigger("input");
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
}
}
function getPinAddress(ob) {
var address = $(ob).parent().find("input").attr("value");
if (address !== "") {
geocoder = new google.maps.Geocoder();
geocoder.geocode({
address: address
}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var output = $(ob).parent().find(".premium-address-result"),
latiude = results[0].geometry.location.lat(),
longitude = results[0].geometry.location.lng();
$(output).html("Latitude: " + latiude + "<br>Longitude: " + longitude + "<br>(Copy and Paste your Latitude & Longitude value below)");
$(ob).parents(".elementor-control-premium_map_pin_notice").nextAll(".elementor-control-map_latitude").find("input").val(latiude).trigger("input");
$(ob).parents(".elementor-control-premium_map_pin_notice").nextAll(".elementor-control-map_longitude").find("input").val(longitude).trigger("input");
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
}
}
\ No newline at end of file
.elementor-add-new-section .pa-add-section-btn {
color: #fff;
background: #F47216;
margin-left: 5px;
}
\ No newline at end of file
.elementor-add-new-section .pa-add-section-btn {
color: #fff;
background: #F47216;
margin-right: 5px;
}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment