Changeset 2969592
- Timestamp:
- 09/21/2023 09:09:12 AM (3 years ago)
- Location:
- linkgenius
- Files:
-
- 2 added
- 28 edited
- 1 copied
-
assets/screenshot-4.png (modified) (previous)
-
assets/screenshot-5.png (modified) (previous)
-
tags/1.1.0 (copied) (copied from linkgenius/trunk)
-
tags/1.1.0/assets/css/tooltip.css (modified) (2 diffs)
-
tags/1.1.0/assets/js/linkgenius-posttype.js (modified) (1 diff)
-
tags/1.1.0/includes/CPT.php (modified) (11 diffs)
-
tags/1.1.0/includes/Discloser.php (modified) (1 diff)
-
tags/1.1.0/includes/Editor.php (modified) (5 diffs)
-
tags/1.1.0/includes/LinkBuilder.php (added)
-
tags/1.1.0/includes/Metabox.php (modified) (8 diffs)
-
tags/1.1.0/includes/Redirect.php (modified) (2 diffs)
-
tags/1.1.0/includes/Settings.php (modified) (7 diffs)
-
tags/1.1.0/includes/Shortcode.php (modified) (5 diffs)
-
tags/1.1.0/languages/linkgenius-fallback.po (modified) (1 diff)
-
tags/1.1.0/languages/linkgenius.pot (modified) (3 diffs)
-
tags/1.1.0/linkgenius.php (modified) (3 diffs)
-
tags/1.1.0/readme.txt (modified) (4 diffs)
-
trunk/assets/css/tooltip.css (modified) (2 diffs)
-
trunk/assets/js/linkgenius-posttype.js (modified) (1 diff)
-
trunk/includes/CPT.php (modified) (11 diffs)
-
trunk/includes/Discloser.php (modified) (1 diff)
-
trunk/includes/Editor.php (modified) (5 diffs)
-
trunk/includes/LinkBuilder.php (added)
-
trunk/includes/Metabox.php (modified) (8 diffs)
-
trunk/includes/Redirect.php (modified) (2 diffs)
-
trunk/includes/Settings.php (modified) (7 diffs)
-
trunk/includes/Shortcode.php (modified) (5 diffs)
-
trunk/languages/linkgenius-fallback.po (modified) (1 diff)
-
trunk/languages/linkgenius.pot (modified) (3 diffs)
-
trunk/linkgenius.php (modified) (3 diffs)
-
trunk/readme.txt (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
linkgenius/tags/1.1.0/assets/css/tooltip.css
r2967528 r2969592 6 6 /* linkgenius-tooltip text */ 7 7 .linkgenius-tooltip .linkgenius-tooltiptext { 8 position: absolute; 8 9 visibility: hidden; 9 width: 120px; 10 bottom: 100%; 11 left: 50%; 12 transform: translateX(-50%); 13 white-space: nowrap; 14 width: fit-content; 15 padding: 0 1em; 10 16 background-color: black; 11 17 color: #fff; 12 18 text-align: center; 13 padding: 5px 0;14 19 border-radius: 6px; 15 16 width: 120px; 17 bottom: 100%; 18 left: 50%; 19 margin-left: -60px; /* Use half of the width (120/2 = 60), to center the tooltip */ 20 position: absolute; 20 opacity: 0; 21 transition: opacity 0.5s; 21 22 } 22 23 … … 35 36 .linkgenius-tooltip:hover .linkgenius-tooltiptext { 36 37 visibility: visible; 38 opacity: 1; 37 39 } -
linkgenius/tags/1.1.0/assets/js/linkgenius-posttype.js
r2967528 r2969592 13 13 }); 14 14 }) 15 16 $('#copy_url').on('click', function(event) { 17 event.preventDefault(); 18 var copyText = document.getElementById("general_slug"); 19 20 // Select the text field 21 copyText.select(); 22 copyText.setSelectionRange(0, 99999); // For mobile devices 23 24 let text = ""; 25 for (var i = 0; i < copyText.parentNode.childNodes.length; i++) { 26 var child = copyText.parentNode.childNodes[i]; 27 28 // Check if the child is a text node 29 if (child.nodeType === Node.TEXT_NODE) { 30 text += child.textContent.trim(); 31 } 32 } 33 text += copyText.value.trim(); 34 // Copy the text inside the text field 35 if(navigator.clipboard !== undefined) { 36 navigator.clipboard.writeText(text); 37 } 38 else { 39 // deprecated backup method when no ssl is available 40 const el = document.createElement('input'); 41 el.value = text; 42 document.body.appendChild(el); 43 el.select(); 44 document.execCommand('copy'); 45 document.body.removeChild(el); 46 } 47 }); 15 48 }); -
linkgenius/tags/1.1.0/includes/CPT.php
r2967528 r2969592 5 5 6 6 class CPT { 7 const TYPE_LINK = 'linkgenius_link';8 const TYPE_CATEGORY = 'linkgenius_category';9 const TYPE_TAG = 'linkgenius_tag';7 public const TYPE_LINK = 'linkgenius_link'; 8 public const TYPE_CATEGORY = 'linkgenius_category'; 9 public const TYPE_TAG = 'linkgenius_tag'; 10 10 11 11 private function __construct() { … … 56 56 'not_found_in_trash' => __( 'No LinkGenius Links found in Trash.', 'text-domain' ), 57 57 ); 58 58 $role = Settings::instance()->get_settings()['general_role']; 59 59 $args = array( 60 60 'labels' => $labels, … … 71 71 'menu_position' => null, 72 72 'supports' => array( 'title'), 73 'show_in_rest' => true 73 'show_in_rest' => true, 74 'capabilities' => array( 75 'edit_post' => $role, 76 'read_post' => $role, 77 'delete_post' => $role, 78 'create_posts' => $role, 79 'edit_posts' => $role, 80 'edit_others_posts' => $role, 81 'publish_posts' => $role, 82 'read_private_posts' => $role, 83 'read' => 'read', 84 'delete_posts' => $role, 85 'delete_private_posts' => $role, 86 'delete_published_posts' => $role, 87 'delete_others_posts' => $role, 88 'edit_private_posts' => $role, 89 'edit_published_posts' => $role 90 ), 74 91 ); 75 92 if(get_option('linkgenius_should_flush', false)) { … … 102 119 ); 103 120 121 $role = Settings::instance()->get_settings()['general_role']; 104 122 $args = array( 105 123 'labels' => $labels, 106 124 'hierarchical' => true, 107 'public' => true, 125 'public' => false, 126 'show_ui' => true, 108 127 'show_admin_column' => true, 109 128 'show_in_nav_menus' => true, 110 129 'show_tagcloud' => true, 111 'rewrite' => array( 'slug' => __( 'linkgenius-category', 'text-domain' ) ), 112 'show_in_rest' => true 113 130 'rewrite' => false, 131 'show_in_rest' => true, 132 'capabilities' => array( 133 'manage_terms' => $role, 134 'edit_terms' => $role, 135 'delete_terms' => $role, 136 'assign_terms' => $role 137 ) 114 138 ); 115 139 … … 139 163 ); 140 164 165 $role = Settings::instance()->get_settings()['general_role']; 141 166 $args = array( 142 167 'labels' => $labels, 143 168 'hierarchical' => false, 144 'public' => true, 169 'public' => false, 170 'show_ui' => true, 145 171 'show_admin_column' => true, 146 172 'show_in_nav_menus' => true, 147 173 'show_tagcloud' => true, 148 'rewrite' => array( 'slug' => __( 'linkgenius-tag', 'text-domain' ) ),174 'rewrite' => false, 149 175 'show_in_rest' => true, 176 'capabilities' => array( 177 'manage_terms' => $role, 178 'edit_terms' => $role, 179 'delete_terms' => $role, 180 'assign_terms' => $role 181 ) 150 182 ); 151 183 … … 280 312 'classes' => 'linkgenius-pro' 281 313 )); 282 283 $autolink_metabox->add_field(array( 284 'id' => 'autolink_title', 285 'type' => 'title', 286 'desc' => __('Intro text autolink', 'linkgenius') 287 )); 288 289 $autolink_metabox->add_field(array( 290 'name' => __('Order', 'linkgenius'), 291 'id' => 'autolink_order', 292 'type' => 'text_small', 293 'attributes' => array ( 294 'required' => 'required', 295 'type' => 'number', 296 'data-default' => '0' 297 ), 298 "default" => "0", 299 'desc' => __('A higher order means earlier executing when dealing with conflicing keywords or urls', 'linkgenius') 300 )); 301 302 $autolink_metabox->add_field(array( 303 'name' => __('Keywords', 'linkgenius'), 304 'id' => 'autolink_keywords', 305 'type' => 'textarea_small', 306 'desc' => __('Enter keywords that will automatically create a link to this LinkGenius link if they occur in the page or post content. One keyword per line, case-insensitive.', 'linkgenius') 307 )); 308 309 $autolink_metabox->add_field(array( 310 'name' => __('URLs', 'linkgenius'), 311 'id' => 'autolink_urls', 312 'type' => 'textarea_small', 313 'desc' => __('Enter URLs that will automatically be replaced with this LinkGenius link. One url per line.', 'linkgenius') 314 )); 314 $fields = $metabox->get_autolink_fields(); 315 foreach($fields as $field) { 316 $autolink_metabox->add_field($field); 317 } 315 318 $autolink_metabox = apply_filters("linkgenius_link_metabox", $autolink_metabox); 316 319 … … 324 327 'classes' => 'linkgenius-pro' 325 328 )); 326 327 $expiration_metabox->add_field(array( 328 'id' => 'expiration_title', 329 'type' => 'title', 330 'desc' => __('Intro text expiration', 'linkgenius') 331 )); 332 333 $expiration_metabox->add_field(array( 334 'name' => __('Expiration Date', 'linkgenius'), 335 'id' => 'expiration_date', 336 'type' => 'text_datetime_timestamp', 337 'desc' => __('Date after which link expires. (optional)', 'linkgenius') 338 )); 339 340 $expiration_metabox->add_field(array( 341 'name' => __('Expiration Clicks', 'linkgenius'), 342 'id' => 'expiration_clicks', 343 'type' => 'text_small', 344 'attributes' => array( 345 'type' => 'number', 346 'pattern' => '\d*', 347 ), 348 'sanitization_cb' => 'absint', 349 'escape_cb' => 'absint', 350 'desc' => __('Number of clicks after which the link expires. (optional)', 'linkgenius') 351 )); 352 353 $expiration_metabox->add_field(array( 354 'name' => __('Redirect After Expiry', 'linkgenius'), 355 'id' => 'redirect_after_expiry', 356 'type' => 'text_url', 357 'desc' => __('The url to redirect to after link expired (used only if date or clicks are set).', 'linkgenius'), 358 'default' => '/', 359 'attributes' => array( 360 'required' => 'required' 361 ) 362 )); 329 $fields = $metabox->get_expiration_fields(); 330 foreach($fields as $field) { 331 $expiration_metabox->add_field($field); 332 } 363 333 $expiration_metabox = apply_filters("linkgenius_link_metabox", $expiration_metabox); 364 334 … … 382 352 'id' => 'geolocation_redirects', 383 353 'type' => 'group', 384 'description' => __('Geolocation R edirects', 'linkgenius'),354 'description' => __('Geolocation Rules', 'linkgenius'), 385 355 'repeatable' => true, 386 356 'options' => array( … … 398 368 399 369 $geolocation_metabox->add_group_field($geolocation_redirects_group, array( 400 'name' => __(' AffiliateURL', 'linkgenius'),401 'id' => ' affiliate_url',370 'name' => __('Target URL', 'linkgenius'), 371 'id' => 'target_url', 402 372 'type' => 'text_url', 403 373 )); 404 374 $geolocation_metabox = apply_filters("linkgenius_link_metabox", $geolocation_metabox); 375 376 377 // user_agent Metabox 378 $user_agent_metabox = new_cmb2_box(array( 379 'id' => 'linkgenius_link_user_agent_metabox', 380 'title' => __('Useragent Rules (Pro)', 'linkgenius'), 381 'object_types' => array(self::TYPE_LINK), 382 'context' => 'normal', 383 'priority' => 'high', 384 'classes' => 'linkgenius-pro' 385 )); 386 387 $user_agent_metabox->add_field(array( 388 'id' => 'user_agent_title', 389 'type' => 'title', 390 'desc' => __('Intro text useragent', 'linkgenius') 391 )); 392 393 $user_agent_redirects_group = $user_agent_metabox->add_field(array( 394 'id' => 'user_agent_redirects', 395 'type' => 'group', 396 'description' => __('Useragent Redirects', 'linkgenius'), 397 'repeatable' => true, 398 'options' => array( 399 'group_title' => __('Redirect {#}', 'linkgenius'), 400 'add_button' => __('Add Another Redirect', 'linkgenius'), 401 'remove_button' => __('Remove Redirect', 'linkgenius'), 402 ), 403 )); 404 405 $user_agent_metabox->add_group_field($user_agent_redirects_group, array( 406 'name' => __('User Agent Regex', 'linkgenius'), 407 'id' => 'user_agent_regex', 408 'type' => 'text', 409 )); 410 411 $user_agent_metabox->add_group_field($user_agent_redirects_group, array( 412 'name' => __('Target URL', 'linkgenius'), 413 'id' => 'target_url', 414 'type' => 'text_url', 415 )); 416 $user_agent_metabox = apply_filters("linkgenius_link_metabox", $user_agent_metabox); 417 405 418 406 419 // GA Link Tracking Metabox … … 413 426 'classes' => 'linkgenius-pro' 414 427 )); 415 416 $fields = array_merge(array(array( 417 'id' => 'tracking_title', 418 'type' => 'title', 419 'desc' => __('Intro text GA tracking', 'linkgenius') 420 )), 421 $metabox->get_analytics_fields()); 428 $fields = $metabox->get_analytics_fields(); 422 429 foreach($fields as $field) { 423 430 $ga_tracking_metabox->add_field($field); … … 476 483 public static function instance() { 477 484 static $instance = null; 478 if($instance == null) 479 $instance = new self(); 485 if($instance == null) { 486 $instance = new static(); 487 } 480 488 return $instance; 481 489 } -
linkgenius/tags/1.1.0/includes/Discloser.php
r2967528 r2969592 69 69 public static function instance() { 70 70 static $instance = null; 71 if($instance == null) 72 $instance = new self(); 71 if($instance == null) { 72 $instance = new static(); 73 } 73 74 return $instance; 74 75 } -
linkgenius/tags/1.1.0/includes/Editor.php
r2967528 r2969592 7 7 function __construct() 8 8 { 9 add_action('init', function() {10 if(current_user_can('edit_posts')) {11 // add_filter('mce_external_plugins', array( $this , 'enqueue_linkgenius_link_picker_script' ));12 // add_filter('mce_buttons', array( $this , 'add_linkgenius_link_button_to_editor_toolbar' ));13 }14 });15 9 add_filter( 'block_categories_all', [$this, 'add_linkgenius_link_block_category']); 16 10 // enqueue scripts and styles for the editor … … 43 37 array( 44 38 'slug' => 'linkgenius', 45 'title' => ' All AffiliateLinks',39 'title' => 'LinkGenius Links', 46 40 ), 47 41 ), … … 49 43 ); 50 44 } 51 52 // public function add_linkgenius_link_button_to_editor_toolbar($buttons) {53 // $buttons[] = 'linkgenius_link_picker';54 // return $buttons;55 // }56 57 58 // public function enqueue_linkgenius_link_picker_script($plugin_array) {59 // $plugin_array['linkgenius_link_picker'] = linkgenius_url.'/assets/js/admin/linkgenius-link-picker.js';60 // return $plugin_array;61 // }62 45 63 46 // … … 125 108 ); 126 109 $query = new WP_Query( $args ); 127 // @header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );128 110 129 111 $links = array_map(fn($post) => [ … … 153 135 $shortcode = "[linkgenius-list ".$_GET['taxonomy']."=".sanitize_title($_GET['item_slug'])." sort=".$_GET['sort']."]".wp_kses_post($_GET['template'])."[/linkgenius-list]"; 154 136 $preview = do_shortcode($shortcode); 155 // @header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );156 137 wp_send_json_success( $preview); 157 138 } -
linkgenius/tags/1.1.0/includes/Metabox.php
r2967528 r2969592 5 5 class Metabox 6 6 { 7 public function cmb2_render_callback_for_clicks( $field, $escaped_value, $object_id, $object_type, $field_type_object ) { 8 ?><span id="clicks_label"><?php echo $escaped_value ?></span> 9 <a href='#' id='reset_clicks'><?php _e("Reset Clicks", "linkgenius_pro")?></a> 10 <script type="text/javascript"> 11 jQuery(document).ready(function($) { 12 console.log("loaded"); 13 $('#reset_clicks').on('click', function(e) { 14 e.preventDefault(); 15 jQuery.ajax({ 16 type: "POST", 17 url: ajaxurl, 18 data: { 19 action: 'linkgenius_reset_clicks', 20 linkgenius_id: <?php echo $object_id; ?> 21 }, 22 success: function(response) { 23 $('#clicks_label').text("0"); 24 }, 25 error: function(error) { 26 console.log(error); 27 } 28 }) 29 }) 30 }) 31 </script> 32 <?php 33 } 34 35 public function sanitize_checkbox($value, $field_args, $field) { 36 // Return 0 instead of false if null value given. Otherwise no value will be saved and default value will be applied 37 return is_null($value) ? 0 : $value; 38 } 39 40 /** 41 * Adds the check options to a field, if for_settings is true a checkbox is added, if false a select with options is added 42 * 43 * @param [type] $field 44 * @param [type] $for_settings 45 * @return void 46 */ 47 protected function add_check_options($field, $for_settings) { 48 if ($for_settings) { 49 $additions = array( 50 'type' => 'checkbox', 51 'sanitization_cb' => [$this, 'sanitize_checkbox'], 52 ); 53 if (isset(Settings::$DEFAULTS['appearance'][$field['id']])) 54 $additions['default'] = Settings::$DEFAULTS['appearance'][$field['id']]; 55 return $field + $additions; 56 } else { 57 $default = Settings::instance()->get_settings()[$field['id']]; 58 return $field + array( 59 'type' => 'select', 'options' => 60 array( 61 'default' => sprintf(__('Default (%s)', 'linkgenius'), $default ? __('Enabled', 'linkgenius') : __('Disabled', 'linkgenius')), 62 '1' => __('Enabled', 'linkgenius'), 63 '0' => __('Disabled', 'linkgenius') 64 ) 65 ); 66 } 67 } 68 7 69 public function get_general_fields($for_settings = false) 8 70 { … … 24 86 ), 25 87 'before_field' => site_url('/') . $settings['general_prefix'].'/', 26 'desc' => __(' The url to link to in your content.', 'linkgenius'),88 'desc' => __('<a href="#" id="copy_url">Copy</a><p>The url to link to in your content.</p>', 'linkgenius'), 27 89 'sanitization_cb' => 'sanitize_title' 28 90 ); … … 54 116 'name' => __('Link Prefix', 'linkgenius'), 55 117 'type' => 'text', 56 'default' => 'go',118 'default' => Settings::$DEFAULTS['general']['general_prefix'] ?? "go", 57 119 'sanitization_cb' => 'sanitize_title', 58 120 'desc' => sprintf(__('The prefix for your link, for example <i>go, recommends, out, link, affiliate</i>. The link will look like <b>%1$sprefix/slug</b>.', 'linkgenius'), site_url('/')) 121 ); 122 $fields[] = array( 123 'id' => 'general_role', 124 'name' => __('Mimimum Role Linkmanagement', 'linkgenius'), 125 'type' => 'select', 126 'options' => array( // keys are the introduced capabilities for that role 127 'manage_options' => __('Administrator', 'linkgenius'), 128 'delete_pages' => __('Editor', 'linkgenius'), 129 'publish_posts' => __('Author', 'linkgenius'), 130 'edit_posts' => __('Contributor', 'linkgenius'), 131 'read' => __('Subscriber', 'linkgenius') 132 ), 133 'default' => Settings::$DEFAULTS['general']['general_role'], 134 'desc' => __('The minimum role a user needs in order to create, edit or delete LinkGenius Links. The settings page will remain visible for administrators only.', 'linkgenius') 59 135 ); 60 136 $fields[] = array( … … 92 168 public function get_link_appearance_fields($for_settings = false) 93 169 { 94 $add_check_options = function ($field) use ($for_settings) {95 if ($for_settings) {96 $additions = array('type' => 'checkbox');97 if (isset(Settings::$DEFAULTS['appearance'][$field['id']]))98 $additions['default'] = Settings::$DEFAULTS['appearance'][$field['id']];99 return $field + $additions;100 } else {101 $default = Settings::instance()->get_settings()[$field['id']];102 return $field + array(103 'type' => 'select', 'options' =>104 array(105 'default' => sprintf(__('Default (%s)', 'linkgenius'), $default ? __('Enabled', 'linkgenius') : __('Disabled', 'linkgenius')),106 '1' => __('Enabled', 'linkgenius'),107 '0' => __('Disabled', 'linkgenius')108 )109 );110 }111 };112 170 $fields = array( 113 171 array( … … 122 180 'desc' => __('Comma separated list of CSS classes', 'linkgenius') 123 181 ), 124 $ add_check_options(array(182 $this->add_check_options(array( 125 183 'name' => __('Open in New Tab', 'linkgenius'), 126 184 'id' => 'appearance_new_tab', 127 185 'desc' => __('Open the URL in a new tab when clicked. Done by adding target="_blank" tag.', 'linkgenius') 128 ) ),129 $ add_check_options(array(186 ), $for_settings), 187 $this->add_check_options(array( 130 188 'name' => __('Parameter Forwarding', 'linkgenius'), 131 189 'id' => 'appearance_parameter_forwarding' 132 ) ),133 $ add_check_options(array(190 ), $for_settings), 191 $this->add_check_options(array( 134 192 'name' => __('Sponsored Attribute', 'linkgenius'), 135 193 'id' => 'appearance_sponsored_attribute' 136 ) ),137 $ add_check_options(array(194 ), $for_settings), 195 $this->add_check_options(array( 138 196 'name' => __('Nofollow Attribute', 'linkgenius'), 139 197 'id' => 'appearance_nofollow_attribute' 140 ) )198 ), $for_settings) 141 199 ); 142 200 $rel_tags = array( … … 271 329 $fields = array(); 272 330 if($for_settings) { 331 $server_side_condition = array( 332 'data-conditional-id' => 'tracking_method', 333 'data-conditional-value' => 'server', 334 ); 335 $required_server_side_conditions = array_merge($server_side_condition, array( 336 'required' => 'required' 337 )); 338 $fields = array_merge($fields, array( 339 array( 340 'id' => 'tracking_configuration_title', 341 'type' => 'title', 342 'name' => __('Tracking Configuration', 'linkgenius'), 343 'desc' => __('Tracking api description', 'linkgenius'), 344 ), 345 array( 346 'name' => __('Tracking Method', 'linkgenius'), 347 'id' => 'tracking_method', 348 'type' => 'radio', 349 'options' => array( 350 'client' => __('Javascript', 'linkgenius'), 351 'server' => __('Serverside Api', 'linkgenius') 352 ), 353 'default' => Settings::$DEFAULTS['tracking']['tracking_method']??'client', 354 'desc' => __('Javascript tracking works best if you have Google Analytics configured on your website and you place all links via shortcodes or blocks. It does not allow for target_url tracking (only cloacked_url) and might miss category parameter on manually placed links. Serverside allows you to include these parameters and allows you to track your links when placed on external source (i.e. social media). Furthermore, it does not require GA to be configured on you website. However, it is slightly harder to config and increases traffic from server.', 'linkgenius') 355 ), 356 array( 357 'name' => __('GA4 Measurement ID', 'linkgenius'), 358 'id' => 'tracking_measurement_id', 359 'type' => 'text', 360 'attributes' => $required_server_side_conditions 361 ), 362 array( 363 'name' => __('GA4 Api Secret', 'linkgenius'), 364 'id' => 'tracking_api_secret', 365 'type' => 'text', 366 'attributes' => $required_server_side_conditions 367 ), 368 array( 369 'name' => __('Linkgenius Cookie Fallback', 'linkgenius'), 370 'id' => 'tracking_cookie_fallback', 371 'type' => 'checkbox', 372 'attributes' => $server_side_condition, 373 'sanitization_cb' => [$this, 'sanitize_checkbox'], 374 'description' => __('<p>When using serverside tracking, LinkGenius tries to send the userid to google analytics by reading the _ga cookie. However, if this cookie does not exist, either because Google Analytics is not used on your website or because the user has not vistited any non-redirecting pages, LinkGenius might use an own identifier to detect unique/returning visitors. This places a cookie with the id with a lifetime of 90 days.</p>' 375 , 'linkgenius'), 376 'default' => Settings::$DEFAULTS['tracking']['tracking_cookie_fallback']??true 377 ), 378 array( 379 'name' => __('Don\'t track bots', 'linkgenius'), 380 'id' => 'tracking_no_bots', 381 'type' => 'checkbox', 382 'attributes' => $server_side_condition, 383 'sanitization_cb' => [$this, 'sanitize_checkbox'], 384 'default' => Settings::$DEFAULTS['tracking']['tracking_no_bots']??true 385 ) 386 )); 273 387 $fields[] = array( 274 388 'id' => 'tracking_defaults_title', … … 278 392 ); 279 393 } 394 else { 395 $fields[] = array( 396 'id' => 'tracking_title', 397 'type' => 'title', 398 'desc' => __('Intro text GA tracking', 'linkgenius') 399 ); 400 } 280 401 $fields = array_merge($fields, array( 281 array(402 $this->add_check_options(array( 282 403 'name' => __('Enabled', 'linkgenius'), 283 'id' => 'tracking_enabled', 284 'type' => 'checkbox', 285 'default' => Settings::$DEFAULTS['tracking']['tracking_enabled']??'1' 286 ), 404 'id' => 'tracking_enabled' 405 ), $for_settings), 287 406 array( 288 407 'name' => __('Event Name', 'linkgenius'), … … 295 414 'id' => 'tracking_parameters', 296 415 'type' => 'textarea_small', 297 'default' => Settings::$DEFAULTS['tracking']['tracking_parameters']??"" 416 'default' => Settings::$DEFAULTS['tracking']['tracking_parameters']??"", 417 'desc' => __('You can use the variables %cloaked_url%, %target_url%, %categories%, %tags% and %referrer%', 'linkgenius') 298 418 ) 299 419 )); 300 420 return $fields; 301 421 } 422 423 public function get_autolink_fields($for_settings = false) { 424 $fields = array(); 425 if($for_settings) 426 return $fields; 427 $fields = array_merge($fields, array( 428 array( 429 'id' => 'autolink_title', 430 'type' => 'title', 431 'desc' => __('Intro text autolink', 'linkgenius') 432 ), 433 array( 434 'name' => __('Order', 'linkgenius'), 435 'id' => 'autolink_order', 436 'type' => 'text_small', 437 'attributes' => array ( 438 'required' => 'required', 439 'type' => 'number', 440 'data-default' => '10' 441 ), 442 "default" => "10", 443 'desc' => __('A lower order means earlier execution when dealing with conflicting keywords or urls', 'linkgenius') 444 ), 445 array( 446 'name' => __('Keywords', 'linkgenius'), 447 'id' => 'autolink_keywords', 448 'type' => 'textarea_small', 449 'desc' => __('Enter keywords that will automatically create a link to this LinkGenius link if they occur in the page or post content. One keyword per line, case-insensitive.', 'linkgenius') 450 ), 451 array( 452 'name' => __('URLs', 'linkgenius'), 453 'id' => 'autolink_urls', 454 'type' => 'textarea_small', 455 'desc' => __('Enter URLs that will automatically be replaced with this LinkGenius link. One url per line.', 'linkgenius') 456 ), 457 )); 458 return $fields; 459 } 460 461 public function get_expiration_fields($for_settings = false) { 462 $fields = []; 463 if($for_settings) { 464 return $fields; 465 } 466 $fields = array_merge($fields, array( 467 array( 468 'id' => 'expiration_title', 469 'type' => 'title', 470 'desc' => __('Intro text expiration', 'linkgenius') 471 ), 472 array( 473 'name' => __('Expiration Date', 'linkgenius'), 474 'id' => 'expiration_date', 475 'type' => 'text_datetime_timestamp', 476 'desc' => __('Date after which link expires. (optional)', 'linkgenius') 477 ), 478 array( 479 'name' => __('Expiration Clicks', 'linkgenius'), 480 'id' => 'expiration_clicks', 481 'type' => 'text_small', 482 'attributes' => array( 483 'type' => 'number', 484 'pattern' => '\d*', 485 ), 486 'sanitization_cb' => 'absint', 487 'escape_cb' => 'absint', 488 'desc' => __('Number of clicks after which the link expires. (optional)', 'linkgenius') 489 ), 490 array( 491 'name' => __('Current Clicks', 'cmb2'), 492 'id' => 'clicks', 493 'type' => 'clicks', 494 'default' => 0 495 ), 496 array( 497 'name' => __('Redirect After Expiry', 'linkgenius'), 498 'id' => 'redirect_after_expiry', 499 'type' => 'text_url', 500 'desc' => __('The url to redirect to after link expired (used only if date or clicks are set).', 'linkgenius'), 501 'default' => '/', 502 'attributes' => array( 503 'required' => 'required' 504 ) 505 ), 506 )); 507 return $fields; 508 } 302 509 } 510 511 add_action( 'cmb2_render_clicks', [new Metabox(), 'cmb2_render_callback_for_clicks'], 10, 5 ); -
linkgenius/tags/1.1.0/includes/Redirect.php
r2967528 r2969592 18 18 if ($post && 'linkgenius_link' === $post->post_type) { 19 19 $data = get_post_meta($post->ID); 20 $data = apply_filters('linkgenius_links/before_redirect', $data); 21 if ($data === null) { 20 if ($data === false) { 22 21 return false; 23 22 } 24 23 $data = array_map(fn($v) => $v[0], $data); 25 $data = apply_filters("linkgenius_before_redirect", $data );24 $data = apply_filters("linkgenius_before_redirect", $data, $post->ID); 26 25 if(empty($data['general_target_url'])) { 27 26 return false; … … 60 59 wp_redirect( $target_url, intval($redirect_type)); 61 60 flush(); 62 do_action("linkgenius_after_redirect", $data );61 do_action("linkgenius_after_redirect", $data, $post->ID); 63 62 exit(); 64 63 } -
linkgenius/tags/1.1.0/includes/Settings.php
r2967528 r2969592 32 32 } 33 33 34 // Highlight the Settings submenu item when on the Settings2 page35 if ( 34 // Highlight the Settings submenu item when on one of the settings pages 35 if ( // Is this a settings page 36 36 isset($_GET['page']) && str_starts_with($_GET['page'], self::OPTIONS_PREFIX) 37 37 && isset($_GET['post_type']) && $_GET['post_type'] === CPT::TYPE_LINK … … 43 43 } 44 44 } 45 } 45 // enqueue the js for conditinals also 46 add_action('admin_enqueue_scripts', [$this, 'enqueue_scripts']); 47 } 48 } 49 50 public function enqueue_scripts() 51 { 52 wp_enqueue_script('cmb2-conditionals', plugins_url('../vendor/jcchavezs/cmb2-conditionals/cmb2-conditionals.js', __FILE__), array('jquery'), '1.0.2', true); 46 53 } 47 54 … … 121 128 { 122 129 static $instance = null; 123 if($instance == null) 124 $instance = new self(); 130 if($instance == null) { 131 $instance = new static(); 132 } 125 133 return $instance; 126 134 } … … 146 154 * - 'disclosure_statement': The disclosure statement to use. 147 155 * - 'tracking': An array of tracking configuration options. 156 * - 'tracking_enabled': Whether or not tracking is enabled. 157 * - 'tracking_name': The name of the tracking cookie. 158 * - 'tracking_parameters': The parameters to use for tracking. 148 159 */ 149 160 public function get_settings() … … 171 182 172 183 public function maybe_flush_rewrite_rules($old_val, $new_val) { 173 if( $old_val['general_prefix'] ?? ""!== $new_val['general_prefix']) {184 if(($old_val['general_prefix'] ?? "") !== $new_val['general_prefix']) { 174 185 add_option('linkgenius_should_flush', true); 175 186 } 176 var_dump($old_val);177 187 } 178 188 } … … 180 190 'general' => [ 181 191 'general_prefix' => "out", 192 'general_role' => 'manage_options', 182 193 'general_redirect_type' => '301', 183 194 'general_uncloak' => false, … … 199 210 ], 200 211 'tracking' => [ 201 'tracking_enabled' => ' 1',212 'tracking_enabled' => '0', 202 213 'tracking_name' => 'linkgenius', 203 214 'tracking_parameters' => "'category': '%category%'\r\n'url':'%url%'" -
linkgenius/tags/1.1.0/includes/Shortcode.php
r2967528 r2969592 3 3 4 4 class Shortcode { 5 private $has_tooltip = false;6 5 function __construct() 7 6 { … … 9 8 add_shortcode('linkgenius-link', array($this, 'linkgenius_link_shortcode')); 10 9 add_shortcode('linkgenius-list', array($this, 'linkgenius_list_shortcode')); 11 add_action("wp_enqueue_scripts", array($this, "maybe_enqueue_styles"));12 }13 14 function maybe_enqueue_styles() {15 if($this->has_tooltip) {16 wp_enqueue_style('linkgenius-tooltip', plugin_dir_url(__FILE__).'../assets/css/tooltip.css');17 }18 10 } 19 11 … … 24 16 25 17 $link_id = intval($atts['id']); 26 27 // Retrieve all metadata for the link 28 $link_metadata = get_post_meta($link_id, ''); 29 if($link_metadata === null || !isset($link_metadata['general_target_url'][0])) { 30 return "Link not found"; 31 } 32 33 $link_metadata = array_map(fn($v) => $v[0], $link_metadata); 34 $link_metadata = apply_filters('linkgenius_shortcode_link_metadata', $link_metadata, $link_id); 35 36 // Retrieve global settings 37 $settings = Settings::instance()->get_settings(); 38 $is_enabled = fn($key) => ($link_metadata[$key] === 'default' ? ($settings[$key]) : $link_metadata[$key] === '1'); 39 40 41 $attributes = array( 42 "href" => esc_url($is_enabled('general_uncloak') ? $link_metadata['general_target_url'] : get_permalink($link_id)) 43 ); 44 if($is_enabled('appearance_new_tab')) { 45 $attributes['target'] = "_blank"; 46 } 47 $rel_tags = trim($settings['appearance_rel_tags']); 48 if($is_enabled('appearance_sponsored_attribute')) { 49 $rel_tags .= " sponsored"; 50 } 51 if($is_enabled('appearance_nofollow_attribute')) { 52 $rel_tags .= " nofollow"; 53 } 54 $rel_tags .= ' '.trim($link_metadata['appearance_rel_tags']??""); 55 $rel_tags = esc_attr(trim($rel_tags)); 56 if(!empty($rel_tags)) { 57 $attributes['rel'] = $rel_tags; 58 } 59 $classes = esc_attr(trim(trim($settings['appearance_css_classes']).' '.trim($link_metadata['appearance_css_classes']??""))); 60 if(!empty($classes)) { 61 $attributes['class'] = $classes; 62 } 63 $attributes = array_merge($attributes, $link_metadata['atts']??[]); 64 65 if ($link_metadata['disclosure_type'] === 'tooltip') { 66 $attributes['class'] = trim(($attributes['classes'] ?? '')." linkgenius-tooltip"); 67 $content .= "" 68 ."<span class='linkgenius-tooltiptext'>" 69 . ($link_metadata['disclosure_tooltip'] ?? $settings['disclosure_tooltip']) 70 ."</span>"; 71 $this->has_tooltip = true; 72 } 73 74 // Output the link 75 $output = array_reduce(array_keys($attributes), fn($carry, $k) => $carry . " ".$k . "='". $attributes[$k]."'", "<a") 76 .">".$content."</a>"; 77 78 if($link_metadata['disclosure_type'] === 'linktext') { 79 $output .= $link_metadata['disclosure_text_after'] ?? $settings['disclosure_text_after']; 80 } 81 else if($link_metadata['disclosure_type'] === 'content_statement') { 82 Discloser::instance()->add_disclosure(); 83 } 84 return $output; 18 return LinkBuilder::instance()->get_link($link_id, $content) ?? "Link not found"; 85 19 } 86 20 … … 138 72 foreach($links as $link) { 139 73 $output .= $prelink. 140 $this->linkgenius_link_shortcode(array('id' => $link->ID), $link->post_title)74 LinkBuilder::instance()->get_link($link->ID, $link->post_title) 141 75 .$postlink; 142 76 } … … 145 79 } 146 80 else { 147 $output = implode($content, array_map(fn($l) => $this->linkgenius_link_shortcode(array('id' => $l->ID), $l->post_title), $links));81 $output = implode($content, array_map(fn($l) => LinkBuilder::instance()->get_link($l->ID, $l->post_title), $links)); 148 82 } 149 83 return $output; -
linkgenius/tags/1.1.0/languages/linkgenius-fallback.po
r2967528 r2969592 34 34 msgstr "" 35 35 36 #: includes/CPT.php:2 4836 #: includes/CPT.php:280 37 37 msgid "Link Appearance" 38 38 msgstr "" 39 39 40 #: includes/CPT.php:2 6240 #: includes/CPT.php:294 41 41 msgid "Link Disclosure" 42 42 msgstr "" 43 43 44 #: includes/CPT.php: 27644 #: includes/CPT.php:308 45 45 msgid "Auto Link (Pro)" 46 46 msgstr "" 47 47 48 #: includes/ CPT.php:28648 #: includes/Metabox.php:434 49 49 msgid "Intro text autolink" 50 50 msgstr "Automatically create links to this LinkGenius link on if Keywords or URLs occur in the page or post content. <strong><a href=\"https://all-affiliates.com/linkgenius/pro?utm_source=plugin&utm_medium=editor&utm_campain=autolink\" target=\"_blank\">Get LinkGenius Pro</a></strong> to unlock this feature." 51 51 52 #: includes/CPT.php:290 52 #: includes/Metabox.php:101 53 #: includes/Metabox.php:437 53 54 #: assets/app/src/linkgenius-taxonomy-selector.js:72 54 #: assets/js/editor .js:75755 #: assets/js/editor/editor.js:2 55 56 msgid "Order" 56 57 msgstr "" 57 58 58 #: includes/CPT.php:298 59 msgid "A higher order means earlier executing when dealing with conflicing keywords or urls" 60 msgstr "" 61 62 #: includes/CPT.php:302 59 #: includes/Metabox.php:449 63 60 msgid "Keywords" 64 61 msgstr "" 65 62 66 #: includes/ CPT.php:30563 #: includes/Metabox.php:452 67 64 msgid "Enter keywords that will automatically create a link to this LinkGenius link if they occur in the page or post content. One keyword per line, case-insensitive." 68 65 msgstr "" 69 66 70 #: includes/ CPT.php:30967 #: includes/Metabox.php:455 71 68 msgid "URLs" 72 69 msgstr "" 73 70 74 #: includes/ CPT.php:31271 #: includes/Metabox.php:458 75 72 msgid "Enter URLs that will automatically be replaced with this LinkGenius link. One url per line." 76 73 msgstr "" 77 74 78 #: includes/ CPT.php:32975 #: includes/Metabox.php:473 79 76 msgid "Intro text expiration" 80 77 msgstr "Make this link expire after a certain date or number of clicks. <strong><a href=\"https://all-affiliates.com/linkgenius/pro?utm_source=plugin&utm_medium=editor&utm_campain=expiration\" target=\"_blank\">Get LinkGenius Pro</a></strong> to unlock this feature." 81 78 82 #: includes/ CPT.php:33679 #: includes/Metabox.php:479 83 80 msgid "Date after which link expires. (optional)" 84 81 msgstr "" 85 82 86 #: includes/ CPT.php:34083 #: includes/Metabox.php:482 87 84 msgid "Expiration Clicks" 88 85 msgstr "" 89 86 90 #: includes/ CPT.php:34987 #: includes/Metabox.php:491 91 88 msgid "Number of clicks after which the link expires. (optional)" 92 89 msgstr "" 93 90 94 #: includes/ CPT.php:35391 #: includes/Metabox.php:500 95 92 msgid "Redirect After Expiry" 96 93 msgstr "" 97 94 98 #: includes/ CPT.php:35695 #: includes/Metabox.php:503 99 96 msgid "The url to redirect to after link expired (used only if date or clicks are set)." 100 97 msgstr "" 101 98 102 #: includes/CPT.php:3 6799 #: includes/CPT.php:338 103 100 msgid "Geolocation Redirects (Pro)" 104 101 msgstr "" 105 102 106 #: includes/CPT.php:3 77103 #: includes/CPT.php:348 107 104 msgid "Intro text Geolocation" 108 105 msgstr "Redirect to different URLs based on the visitor's country. <strong><a href=\"https://all-affiliates.com/linkgenius/pro?utm_source=plugin&utm_medium=editor&utm_campain=geolocation\" target=\"_blank\">Get LinkGenius Pro</a></strong> to unlock this feature." 109 106 110 #: includes/CPT.php:383 111 msgid "Geolocation Redirects" 112 msgstr "" 113 114 #: includes/CPT.php:386 107 #: includes/CPT.php:357 108 #: includes/CPT.php:399 115 109 msgid "Redirect {#}" 116 110 msgstr "" 117 111 118 #: includes/CPT.php:387 112 #: includes/CPT.php:358 113 #: includes/CPT.php:400 119 114 msgid "Add Another Redirect" 120 115 msgstr "" 121 116 122 #: includes/CPT.php:388 117 #: includes/CPT.php:359 118 #: includes/CPT.php:401 123 119 msgid "Remove Redirect" 124 120 msgstr "" 125 121 126 #: includes/CPT.php:3 93122 #: includes/CPT.php:364 127 123 msgid "Country Code" 128 124 msgstr "" 129 125 130 #: includes/CPT.php:399 131 msgid "Affiliate URL" 132 msgstr "" 133 134 #: includes/CPT.php:408 126 #: includes/CPT.php:422 135 127 msgid "GA Link Tracking (Pro)" 136 128 msgstr "" 137 129 138 #: includes/Editor.php:84 139 msgid "Missing required post data" 140 msgstr "" 141 142 #: includes/Metabox.php:12 130 #: includes/Metabox.php:74 143 131 msgid "301 Permanent Redirect" 144 132 msgstr "" 145 133 146 #: includes/Metabox.php: 13134 #: includes/Metabox.php:75 147 135 msgid "302 Temporary Redirect" 148 136 msgstr "" 149 137 150 #: includes/Metabox.php: 14138 #: includes/Metabox.php:76 151 139 msgid "307 Temporary Redirect" 152 140 msgstr "" 153 141 154 #: includes/Metabox.php: 17155 #: includes/Metabox.php:7 8156 #: includes/Metabox.php:1 04157 #: includes/Metabox.php: 170142 #: includes/Metabox.php:61 143 #: includes/Metabox.php:79 144 #: includes/Metabox.php:155 145 #: includes/Metabox.php:253 158 146 msgid "Default (%s)" 159 147 msgstr "" 160 148 161 #: includes/Metabox.php:26 162 msgid "The url to link to in your content." 163 msgstr "" 164 165 #: includes/Metabox.php:30 149 #: includes/Metabox.php:92 166 150 msgid "Target URL*" 167 151 msgstr "" 168 152 169 #: includes/Metabox.php: 36153 #: includes/Metabox.php:98 170 154 msgid "The target (affiliate) link." 171 155 msgstr "" 172 156 173 #: includes/Metabox.php:39 174 msgid "Order*" 175 msgstr "" 176 177 #: includes/Metabox.php:47 157 #: includes/Metabox.php:110 178 158 msgid "The order for the link, used when displaying all links of a tag or category" 179 159 msgstr "" 180 160 181 #: includes/Metabox.php: 53161 #: includes/Metabox.php:116 182 162 msgid "Link Prefix" 183 163 msgstr "" 184 164 185 #: includes/Metabox.php: 57165 #: includes/Metabox.php:120 186 166 msgid "The prefix for your link, for example <i>go, recommends, out, link, affiliate</i>. The link will look like <b>%1$sprefix/slug</b>." 187 167 msgstr "" 188 168 169 #: includes/Metabox.php:138 170 msgid "Defaults" 171 msgstr "" 172 173 #: includes/Metabox.php:140 174 msgid "Intro default general setings" 175 msgstr "" 176 177 #: includes/Metabox.php:145 178 msgid "Redirect Type" 179 msgstr "" 180 189 181 #: includes/Metabox.php:61 190 msgid "Defaults" 191 msgstr "" 192 182 #: includes/Metabox.php:62 183 #: includes/Metabox.php:155 184 #: includes/Metabox.php:156 185 #: includes/Metabox.php:406 186 msgid "Enabled" 187 msgstr "" 188 189 #: includes/Metabox.php:61 193 190 #: includes/Metabox.php:63 194 msgid "Intro default general setings" 195 msgstr "" 196 197 #: includes/Metabox.php:68 198 msgid "Redirect Type" 199 msgstr "" 200 201 #: includes/Metabox.php:78 202 #: includes/Metabox.php:79 203 #: includes/Metabox.php:104 204 #: includes/Metabox.php:105 205 #: includes/Metabox.php:248 206 msgid "Enabled" 207 msgstr "" 208 209 #: includes/Metabox.php:78 210 #: includes/Metabox.php:80 211 #: includes/Metabox.php:104 212 #: includes/Metabox.php:106 191 #: includes/Metabox.php:155 192 #: includes/Metabox.php:157 213 193 msgid "Disabled" 214 194 msgstr "" 215 195 216 #: includes/Metabox.php: 84196 #: includes/Metabox.php:161 217 197 msgid "No Cloaking" 218 198 msgstr "" 219 199 220 #: includes/Metabox.php: 86200 #: includes/Metabox.php:163 221 201 msgid "When checked affiliate url of LinkGenius Links will be outputted in content instead of the slug." 222 202 msgstr "" 223 203 224 #: includes/Metabox.php: 115204 #: includes/Metabox.php:213 225 205 msgid "Default Link appearance" 226 206 msgstr "" 227 207 228 #: includes/Metabox.php:1 16208 #: includes/Metabox.php:174 229 209 msgid "Intro text appearance" 230 210 msgstr "Determine how the link will appear in your content." 231 211 232 #: includes/Metabox.php:1 19212 #: includes/Metabox.php:177 233 213 msgid "Global CSS Classes" 234 214 msgstr "" 235 215 236 #: includes/Metabox.php:1 19216 #: includes/Metabox.php:177 237 217 msgid "CSS Classes" 238 218 msgstr "" 239 219 240 #: includes/Metabox.php:1 22220 #: includes/Metabox.php:180 241 221 msgid "Comma separated list of CSS classes" 242 222 msgstr "" 243 223 244 #: includes/Metabox.php:1 25224 #: includes/Metabox.php:183 245 225 msgid "Open in New Tab" 246 226 msgstr "" 247 227 248 #: includes/Metabox.php:1 27228 #: includes/Metabox.php:185 249 229 msgid "Open the URL in a new tab when clicked. Done by adding target=\"_blank\" tag." 250 230 msgstr "" 251 231 252 #: includes/Metabox.php:1 30232 #: includes/Metabox.php:188 253 233 msgid "Parameter Forwarding" 254 234 msgstr "" 255 235 256 #: includes/Metabox.php:1 34236 #: includes/Metabox.php:192 257 237 msgid "Sponsored Attribute" 258 238 msgstr "" 259 239 260 #: includes/Metabox.php:1 38240 #: includes/Metabox.php:196 261 241 msgid "Nofollow Attribute" 262 242 msgstr "" 263 243 264 #: includes/Metabox.php: 142244 #: includes/Metabox.php:201 265 245 msgid "Global Additional Rel Tags" 266 246 msgstr "" 267 247 268 #: includes/Metabox.php: 142248 #: includes/Metabox.php:201 269 249 msgid "Additional Rel Tags" 270 250 msgstr "" 271 251 272 #: includes/Metabox.php: 145252 #: includes/Metabox.php:204 273 253 msgid "Comma separated list of additional rel tags" 274 254 msgstr "" 275 255 276 #: includes/Metabox.php: 155256 #: includes/Metabox.php:228 277 257 msgid "None" 278 258 msgstr "" 279 259 280 #: includes/Metabox.php: 156260 #: includes/Metabox.php:229 281 261 msgid "Tooltip" 282 262 msgstr "" 283 263 284 #: includes/Metabox.php: 157285 #: includes/Metabox.php: 187286 #: includes/Metabox.php: 224264 #: includes/Metabox.php:230 265 #: includes/Metabox.php:270 266 #: includes/Metabox.php:312 287 267 msgid "Text After Link" 288 268 msgstr "" 289 269 290 #: includes/Metabox.php: 158270 #: includes/Metabox.php:231 291 271 msgid "Content Statement" 292 272 msgstr "" 293 273 294 #: includes/Metabox.php: 163274 #: includes/Metabox.php:236 295 275 msgid "Intro text disclosure" 296 276 msgstr "Show an (affiliate link) disclosure statement when this link appears in your content." 297 277 298 #: includes/Metabox.php: 166278 #: includes/Metabox.php:249 299 279 msgid "Disclosure Type" 300 280 msgstr "" 301 281 302 #: includes/Metabox.php: 180282 #: includes/Metabox.php:263 303 283 msgid "Default Disclosure Tooltip" 304 284 msgstr "" 305 285 306 #: includes/Metabox.php: 183286 #: includes/Metabox.php:266 307 287 msgid "default_tooltip_desc" 308 288 msgstr "" 309 289 310 #: includes/Metabox.php: 194290 #: includes/Metabox.php:282 311 291 msgid "Content Disclosure Location" 312 292 msgstr "" 313 293 314 #: includes/Metabox.php: 198294 #: includes/Metabox.php:286 315 295 msgid "End of Post" 316 296 msgstr "" 317 297 318 #: includes/Metabox.php: 199298 #: includes/Metabox.php:287 319 299 msgid "Beginning of Post" 320 300 msgstr "" 321 301 322 #: includes/Metabox.php:2 00302 #: includes/Metabox.php:288 323 303 msgid "Custom (Via Shortcode or Action)" 324 304 msgstr "" 325 305 326 #: includes/Metabox.php:2 05306 #: includes/Metabox.php:293 327 307 msgid "Content Disclosure Text" 328 308 msgstr "" 329 309 330 #: includes/Metabox.php: 214310 #: includes/Metabox.php:302 331 311 msgid "Disclosure Text" 332 312 msgstr "" 333 313 334 #: includes/Metabox.php: 218335 #: includes/Metabox.php: 229314 #: includes/Metabox.php:306 315 #: includes/Metabox.php:317 336 316 msgid "Default: %s" 337 317 msgstr "" 338 318 339 #: includes/Metabox.php: 227319 #: includes/Metabox.php:315 340 320 msgid "after_link_text_desc" 341 321 msgstr "" 342 322 343 #: includes/Metabox.php: 245323 #: includes/Metabox.php:401 344 324 msgid "Intro text GA tracking" 345 325 msgstr "Track clicks with Google Analytics. <strong><a href=\"https://all-affiliates.com/linkgenius/pro?utm_source=plugin&utm_medium=editor&utm_campain=tracking\" target=\"_blank\">Get LinkGenius Pro</a></strong> to unlock this feature." 346 326 347 #: includes/Metabox.php: 253327 #: includes/Metabox.php:410 348 328 msgid "Event Name" 349 329 msgstr "" 350 330 351 #: includes/Metabox.php: 258331 #: includes/Metabox.php:416 352 332 msgid "Event Parameters" 353 333 msgstr "" 354 334 355 #: includes/Settings.php:6 0356 #: includes/Settings.php:6 1335 #: includes/Settings.php:67 336 #: includes/Settings.php:68 357 337 msgid "Settings" 358 338 msgstr "" 359 339 360 #: includes/Settings.php: 65340 #: includes/Settings.php:72 361 341 msgid "General" 362 342 msgstr "" 363 343 364 #: includes/Settings.php:80 344 #: includes/Settings.php:87 345 #: includes/Settings.php:93 365 346 msgid "Appearance" 366 347 msgstr "" 367 348 368 #: includes/Settings.php:86 369 msgid "appearance" 370 msgstr "" 371 372 #: includes/Settings.php:102 373 #: includes/Settings.php:108 349 #: includes/Settings.php:109 350 #: includes/Settings.php:115 374 351 msgid "Disclosure" 375 352 msgstr "" 376 353 377 #: includes/Settings.php: 124378 msgid " Link Tracking"379 msgstr "" 380 381 #: includes/Settings.php: 130382 msgid " Tracking"354 #: includes/Settings.php:206 355 msgid "Affiliate Link" 356 msgstr "" 357 358 #: includes/Settings.php:207 359 msgid " (Affiliate Link)" 383 360 msgstr "" 384 361 385 362 #: includes/Settings.php:209 386 msgid "Affiliate Link"387 msgstr ""388 389 #: includes/Settings.php:210390 msgid " (Affiliate Link)"391 msgstr ""392 393 #: includes/Settings.php:212394 363 msgid "default_content_disclosure_text" 395 364 msgstr "This page contains affiliate links managed using the <a href=\"https://all-affiliates.com/linkgenius\" target=\"_blank\"/>LinkGenius</a> plugin. If you click through and purchase an item, I may earn a commission. See my terms of service for details." 396 365 397 #: includes/Shortcode.php: 103366 #: includes/Shortcode.php:59 398 367 msgid "You must specify a category or tag" 399 368 msgstr "" 400 369 401 370 #: assets/app/src/linkgenius-block.js:39 402 #: assets/js/editor .js:78371 #: assets/js/editor/editor.js:2 403 372 msgid "No LinkGenius Link Selected" 404 373 msgstr "" 405 374 406 #: assets/app/src/linkgenius-block.js:5 2407 #: assets/js/editor .js:91375 #: assets/app/src/linkgenius-block.js:51 376 #: assets/js/editor/editor.js:2 408 377 msgid "Edit LinkGenius Link" 409 378 msgstr "" 410 379 411 #: assets/app/src/linkgenius-block.js:5 2412 #: assets/js/editor .js:91380 #: assets/app/src/linkgenius-block.js:51 381 #: assets/js/editor/editor.js:2 413 382 msgid "Preview LinkGenius Link" 414 383 msgstr "" 415 384 385 #: assets/app/src/linkgenius-block.js:58 386 #: assets/app/src/linkgenius-link-format.js:19 387 #: assets/app/src/linkgenius-link-format.js:76 388 #: assets/js/editor/editor.js:2 389 msgid "LinkGenius Link" 390 msgstr "" 391 416 392 #: assets/app/src/linkgenius-block.js:59 417 #: assets/app/src/linkgenius-link-format.js:19 418 #: assets/js/editor.js:98 419 #: assets/js/editor.js:260 420 msgid "LinkGenius Link" 421 msgstr "" 422 423 #: assets/app/src/linkgenius-block.js:60 424 #: assets/js/editor.js:98 393 #: assets/js/editor/editor.js:2 425 394 msgid "Text" 426 395 msgstr "" 427 396 428 #: assets/app/src/linkgenius-block.js:6 4429 #: assets/js/editor .js:105397 #: assets/app/src/linkgenius-block.js:63 398 #: assets/js/editor/editor.js:2 430 399 msgid "Link" 431 400 msgstr "" 432 401 433 402 #: assets/app/src/linkgenius-link-format.js:64 434 #: assets/js/editor.js:304 403 msgid "Remove LinkGenius Link" 404 msgstr "" 405 406 #: assets/app/src/linkgenius-link-selector.js:75 407 #: assets/js/editor/editor.js:2 408 msgid "No link selected" 409 msgstr "" 410 411 #: assets/app/src/linkgenius-link-selector.js:77 412 #: assets/js/editor/editor.js:2 413 msgid "Edit" 414 msgstr "" 415 416 #: assets/app/src/linkgenius-taxonomy-selector.js:47 417 #: assets/js/editor/editor.js:2 418 msgid "Edit LinkGenius List" 419 msgstr "" 420 421 #: assets/app/src/linkgenius-taxonomy-selector.js:47 422 #: assets/js/editor/editor.js:2 423 msgid "Preview LinkGenius List" 424 msgstr "" 425 426 #: assets/app/src/linkgenius-taxonomy-selector.js:60 427 #: assets/js/editor/editor.js:2 428 msgid "LinkGenius Category List" 429 msgstr "" 430 431 #: assets/app/src/linkgenius-taxonomy-selector.js:60 432 #: assets/js/editor/editor.js:2 433 msgid "LinkGenius Tag List" 434 msgstr "" 435 436 #: assets/app/src/linkgenius-taxonomy-selector.js:62 437 #: assets/js/editor/editor.js:2 438 msgid "Category" 439 msgstr "" 440 441 #: assets/app/src/linkgenius-taxonomy-selector.js:62 442 #: assets/js/editor/editor.js:2 443 msgid "Tag" 444 msgstr "" 445 446 #: assets/app/src/linkgenius-taxonomy-selector.js:70 447 #: assets/js/editor/editor.js:2 448 msgid "Sort By" 449 msgstr "" 450 451 #: assets/app/src/linkgenius-taxonomy-selector.js:73 452 #: assets/js/editor/editor.js:2 453 msgid "Title" 454 msgstr "" 455 456 #: assets/app/src/linkgenius-taxonomy-selector.js:77 457 #: assets/js/editor/editor.js:2 458 msgid "Template or seperator" 459 msgstr "" 460 461 #: assets/app/src/linkgenius-taxonomy-selector.js:78 462 #: assets/js/editor/editor.js:2 463 msgid "If {links}{link}{/links} is not found value is treated as seperator. For example, Set to \", \" to make links comma seperated" 464 msgstr "" 465 466 #: assets/app/src/linkgenius-taxonomy-selector.js:127 467 #: assets/js/editor/editor.js:2 468 msgid "No LinkGenius links found" 469 msgstr "" 470 471 #: includes/Metabox.php:81 472 msgid "Slug*" 473 msgstr "" 474 475 #: includes/CPT.php:323 476 msgid "Link Expiration (Pro)" 477 msgstr "" 478 479 #: includes/Metabox.php:476 480 msgid "Expiration Date" 481 msgstr "" 482 483 #: includes/CPT.php:354 484 msgid "Geolocation Rules" 485 msgstr "" 486 487 #: includes/CPT.php:370 488 #: includes/CPT.php:412 489 msgid "Target URL" 490 msgstr "" 491 492 #: includes/CPT.php:380 493 msgid "Useragent Rules (Pro)" 494 msgstr "" 495 496 #: includes/CPT.php:390 497 msgid "Intro text useragent" 498 msgstr "" 499 500 #: includes/CPT.php:396 501 msgid "Useragent Redirects" 502 msgstr "" 503 504 #: includes/CPT.php:406 505 msgid "User Agent Regex" 506 msgstr "" 507 508 #: includes/Metabox.php:88 509 msgid "<a href=\"#\" id=\"copy_url\">Copy</a><p>The url to link to in your content.</p>" 510 msgstr "" 511 512 #: includes/Metabox.php:124 513 msgid "Mimimum Role Linkmanagement" 514 msgstr "" 515 516 #: includes/Metabox.php:127 517 msgid "Administrator" 518 msgstr "" 519 520 #: includes/Metabox.php:128 521 msgid "Editor" 522 msgstr "" 523 524 #: includes/Metabox.php:129 525 msgid "Author" 526 msgstr "" 527 528 #: includes/Metabox.php:130 529 msgid "Contributor" 530 msgstr "" 531 532 #: includes/Metabox.php:131 533 msgid "Subscriber" 534 msgstr "" 535 536 #: includes/Metabox.php:134 537 msgid "The minimum role a user needs in order to create, edit or delete LinkGenius Links. The settings page will remain visible for administrators only." 538 msgstr "" 539 540 #: includes/Metabox.php:214 541 #: includes/Metabox.php:244 542 #: includes/Metabox.php:394 543 msgid "Default settings, can be overriden per individual link." 544 msgstr "" 545 546 #: includes/Metabox.php:243 547 msgid "Default disclosure settings" 548 msgstr "" 549 550 #: includes/Metabox.php:279 551 msgid "Content disclosure settings" 552 msgstr "" 553 554 #: includes/Metabox.php:345 555 msgid "Tracking Configuration" 556 msgstr "" 557 558 #: includes/Metabox.php:346 559 msgid "Tracking api description" 560 msgstr "" 561 562 #: includes/Metabox.php:349 563 msgid "Tracking Method" 564 msgstr "" 565 566 #: includes/Metabox.php:353 567 msgid "Javascript" 568 msgstr "" 569 570 #: includes/Metabox.php:354 571 msgid "Serverside Api" 572 msgstr "" 573 574 #: includes/Metabox.php:357 575 msgid "Javascript tracking works best if you have Google Analytics configured on your website and you place all links via shortcodes or blocks. It does not allow for target_url tracking (only cloacked_url) and might miss category parameter on manually placed links. Serverside allows you to include these parameters and allows you to track your links when placed on external source (i.e. social media). Furthermore, it does not require GA to be configured on you website. However, it is slightly harder to config and increases traffic from server." 576 msgstr "" 577 578 #: includes/Metabox.php:360 579 msgid "GA4 Measurement ID" 580 msgstr "" 581 582 #: includes/Metabox.php:366 583 msgid "GA4 Api Secret" 584 msgstr "" 585 586 #: includes/Metabox.php:372 587 msgid "Linkgenius Cookie Fallback" 588 msgstr "" 589 590 #: includes/Metabox.php:377 591 msgid "<p>When using serverside tracking, LinkGenius tries to send the userid to google analytics by reading the _ga cookie. However, if this cookie does not exist, either because Google Analytics is not used on your website or because the user has not vistited any non-redirecting pages, LinkGenius might use an own identifier to detect unique/returning visitors. This places a cookie with the id with a lifetime of 90 days.</p>" 592 msgstr "" 593 594 #: includes/Metabox.php:382 595 msgid "Don't track bots" 596 msgstr "" 597 598 #: includes/Metabox.php:393 599 msgid "Default GA tracking settings" 600 msgstr "" 601 602 #: includes/Metabox.php:420 603 msgid "You can use the variables %cloaked_url%, %target_url%, %categories%, %tags% and %referrer%" 604 msgstr "" 605 606 #: includes/Metabox.php:446 607 msgid "A lower order means earlier execution when dealing with conflicting keywords or urls" 608 msgstr "" 609 610 #: assets/js/editor/editor.js:2 435 611 msgid "Remove All Affiliate Link" 436 612 msgstr "" 437 613 438 #: assets/app/src/linkgenius-link-format.js:76 439 #: assets/js/editor.js:309 614 #: assets/js/editor/editor.js:2 440 615 msgid "All Affiliate Link" 441 616 msgstr "" 442 443 #: assets/app/src/linkgenius-link-selector.js:76444 #: assets/js/editor.js:465445 msgid "No link selected"446 msgstr ""447 448 #: assets/app/src/linkgenius-link-selector.js:78449 #: assets/js/editor.js:467450 msgid "Edit"451 msgstr ""452 453 #: assets/app/src/linkgenius-taxonomy-selector.js:47454 #: assets/js/editor.js:731455 msgid "Edit LinkGenius List"456 msgstr ""457 458 #: assets/app/src/linkgenius-taxonomy-selector.js:47459 #: assets/js/editor.js:731460 msgid "Preview LinkGenius List"461 msgstr ""462 463 #: assets/app/src/linkgenius-taxonomy-selector.js:60464 #: assets/js/editor.js:745465 msgid "LinkGenius Category List"466 msgstr ""467 468 #: assets/app/src/linkgenius-taxonomy-selector.js:60469 #: assets/js/editor.js:745470 msgid "LinkGenius Tag List"471 msgstr ""472 473 #: assets/app/src/linkgenius-taxonomy-selector.js:62474 #: assets/js/editor.js:745475 msgid "Category"476 msgstr ""477 478 #: assets/app/src/linkgenius-taxonomy-selector.js:62479 #: assets/js/editor.js:745480 msgid "Tag"481 msgstr ""482 483 #: assets/app/src/linkgenius-taxonomy-selector.js:70484 #: assets/js/editor.js:755485 msgid "Sort By"486 msgstr ""487 488 #: assets/app/src/linkgenius-taxonomy-selector.js:73489 #: assets/js/editor.js:760490 msgid "Title"491 msgstr ""492 493 #: assets/app/src/linkgenius-taxonomy-selector.js:77494 #: assets/js/editor.js:769495 msgid "Template or seperator"496 msgstr ""497 498 #: assets/app/src/linkgenius-taxonomy-selector.js:78499 #: assets/js/editor.js:771500 msgid "If {links}{link}{/links} is not found value is treated as seperator. For example, Set to \", \" to make links comma seperated"501 msgstr ""502 503 #: assets/app/src/linkgenius-taxonomy-selector.js:126504 msgid "No LinkGenius links found"505 msgstr ""506 507 #: assets/js/editor.js:867508 msgid "No LinkGenie links found"509 msgstr ""510 511 #: includes/Metabox.php:19512 msgid "Slug*"513 msgstr ""514 515 #: includes/CPT.php:319516 msgid "Link Expiration (Pro)"517 msgstr ""518 519 #: includes/CPT.php:333520 msgid "Expiration Date"521 msgstr "" -
linkgenius/tags/1.1.0/languages/linkgenius.pot
r2967528 r2969592 3 3 msgid "" 4 4 msgstr "" 5 "Project-Id-Version: LinkGenius 1.0. 0\n"5 "Project-Id-Version: LinkGenius 1.0.1\n" 6 6 "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/linkgenius\n" 7 7 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" … … 10 10 "Content-Type: text/plain; charset=UTF-8\n" 11 11 "Content-Transfer-Encoding: 8bit\n" 12 "POT-Creation-Date: 2023-0 6-15T11:35:31+00:00\n"12 "POT-Creation-Date: 2023-09-21T07:55:51+00:00\n" 13 13 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 14 14 "X-Generator: WP-CLI 2.7.1\n" … … 35 35 msgstr "" 36 36 37 #: includes/CPT.php:2 4837 #: includes/CPT.php:280 38 38 msgid "Link Appearance" 39 39 msgstr "" 40 40 41 #: includes/CPT.php:2 6241 #: includes/CPT.php:294 42 42 msgid "Link Disclosure" 43 43 msgstr "" 44 44 45 #: includes/CPT.php: 27645 #: includes/CPT.php:308 46 46 msgid "Auto Link (Pro)" 47 47 msgstr "" 48 48 49 #: includes/CPT.php:286 49 #: includes/CPT.php:323 50 msgid "Link Expiration (Pro)" 51 msgstr "" 52 53 #: includes/CPT.php:338 54 msgid "Geolocation Redirects (Pro)" 55 msgstr "" 56 57 #: includes/CPT.php:348 58 msgid "Intro text Geolocation" 59 msgstr "" 60 61 #: includes/CPT.php:354 62 msgid "Geolocation Rules" 63 msgstr "" 64 65 #: includes/CPT.php:357 66 #: includes/CPT.php:399 67 msgid "Redirect {#}" 68 msgstr "" 69 70 #: includes/CPT.php:358 71 #: includes/CPT.php:400 72 msgid "Add Another Redirect" 73 msgstr "" 74 75 #: includes/CPT.php:359 76 #: includes/CPT.php:401 77 msgid "Remove Redirect" 78 msgstr "" 79 80 #: includes/CPT.php:364 81 msgid "Country Code" 82 msgstr "" 83 84 #: includes/CPT.php:370 85 #: includes/CPT.php:412 86 msgid "Target URL" 87 msgstr "" 88 89 #: includes/CPT.php:380 90 msgid "Useragent Rules (Pro)" 91 msgstr "" 92 93 #: includes/CPT.php:390 94 msgid "Intro text useragent" 95 msgstr "" 96 97 #: includes/CPT.php:396 98 msgid "Useragent Redirects" 99 msgstr "" 100 101 #: includes/CPT.php:406 102 msgid "User Agent Regex" 103 msgstr "" 104 105 #: includes/CPT.php:422 106 msgid "GA Link Tracking (Pro)" 107 msgstr "" 108 109 #: includes/Metabox.php:61 110 #: includes/Metabox.php:79 111 #: includes/Metabox.php:155 112 #: includes/Metabox.php:253 113 msgid "Default (%s)" 114 msgstr "" 115 116 #: includes/Metabox.php:61 117 #: includes/Metabox.php:62 118 #: includes/Metabox.php:155 119 #: includes/Metabox.php:156 120 #: includes/Metabox.php:406 121 msgid "Enabled" 122 msgstr "" 123 124 #: includes/Metabox.php:61 125 #: includes/Metabox.php:63 126 #: includes/Metabox.php:155 127 #: includes/Metabox.php:157 128 msgid "Disabled" 129 msgstr "" 130 131 #: includes/Metabox.php:74 132 msgid "301 Permanent Redirect" 133 msgstr "" 134 135 #: includes/Metabox.php:75 136 msgid "302 Temporary Redirect" 137 msgstr "" 138 139 #: includes/Metabox.php:76 140 msgid "307 Temporary Redirect" 141 msgstr "" 142 143 #: includes/Metabox.php:81 144 msgid "Slug*" 145 msgstr "" 146 147 #: includes/Metabox.php:88 148 msgid "<a href=\"#\" id=\"copy_url\">Copy</a><p>The url to link to in your content.</p>" 149 msgstr "" 150 151 #: includes/Metabox.php:92 152 msgid "Target URL*" 153 msgstr "" 154 155 #: includes/Metabox.php:98 156 msgid "The target (affiliate) link." 157 msgstr "" 158 159 #: includes/Metabox.php:101 160 #: includes/Metabox.php:437 161 #: assets/app/src/linkgenius-taxonomy-selector.js:72 162 #: assets/js/editor/editor.js:2 163 msgid "Order" 164 msgstr "" 165 166 #: includes/Metabox.php:110 167 msgid "The order for the link, used when displaying all links of a tag or category" 168 msgstr "" 169 170 #: includes/Metabox.php:116 171 msgid "Link Prefix" 172 msgstr "" 173 174 #: includes/Metabox.php:120 175 msgid "The prefix for your link, for example <i>go, recommends, out, link, affiliate</i>. The link will look like <b>%1$sprefix/slug</b>." 176 msgstr "" 177 178 #: includes/Metabox.php:124 179 msgid "Mimimum Role Linkmanagement" 180 msgstr "" 181 182 #: includes/Metabox.php:127 183 msgid "Administrator" 184 msgstr "" 185 186 #: includes/Metabox.php:128 187 msgid "Editor" 188 msgstr "" 189 190 #: includes/Metabox.php:129 191 msgid "Author" 192 msgstr "" 193 194 #: includes/Metabox.php:130 195 msgid "Contributor" 196 msgstr "" 197 198 #: includes/Metabox.php:131 199 msgid "Subscriber" 200 msgstr "" 201 202 #: includes/Metabox.php:134 203 msgid "The minimum role a user needs in order to create, edit or delete LinkGenius Links. The settings page will remain visible for administrators only." 204 msgstr "" 205 206 #: includes/Metabox.php:138 207 msgid "Defaults" 208 msgstr "" 209 210 #: includes/Metabox.php:140 211 msgid "Intro default general setings" 212 msgstr "" 213 214 #: includes/Metabox.php:145 215 msgid "Redirect Type" 216 msgstr "" 217 218 #: includes/Metabox.php:161 219 msgid "No Cloaking" 220 msgstr "" 221 222 #: includes/Metabox.php:163 223 msgid "When checked affiliate url of LinkGenius Links will be outputted in content instead of the slug." 224 msgstr "" 225 226 #: includes/Metabox.php:174 227 msgid "Intro text appearance" 228 msgstr "" 229 230 #: includes/Metabox.php:177 231 msgid "Global CSS Classes" 232 msgstr "" 233 234 #: includes/Metabox.php:177 235 msgid "CSS Classes" 236 msgstr "" 237 238 #: includes/Metabox.php:180 239 msgid "Comma separated list of CSS classes" 240 msgstr "" 241 242 #: includes/Metabox.php:183 243 msgid "Open in New Tab" 244 msgstr "" 245 246 #: includes/Metabox.php:185 247 msgid "Open the URL in a new tab when clicked. Done by adding target=\"_blank\" tag." 248 msgstr "" 249 250 #: includes/Metabox.php:188 251 msgid "Parameter Forwarding" 252 msgstr "" 253 254 #: includes/Metabox.php:192 255 msgid "Sponsored Attribute" 256 msgstr "" 257 258 #: includes/Metabox.php:196 259 msgid "Nofollow Attribute" 260 msgstr "" 261 262 #: includes/Metabox.php:201 263 msgid "Global Additional Rel Tags" 264 msgstr "" 265 266 #: includes/Metabox.php:201 267 msgid "Additional Rel Tags" 268 msgstr "" 269 270 #: includes/Metabox.php:204 271 msgid "Comma separated list of additional rel tags" 272 msgstr "" 273 274 #: includes/Metabox.php:213 275 msgid "Default Link appearance" 276 msgstr "" 277 278 #: includes/Metabox.php:214 279 #: includes/Metabox.php:244 280 #: includes/Metabox.php:394 281 msgid "Default settings, can be overriden per individual link." 282 msgstr "" 283 284 #: includes/Metabox.php:228 285 msgid "None" 286 msgstr "" 287 288 #: includes/Metabox.php:229 289 msgid "Tooltip" 290 msgstr "" 291 292 #: includes/Metabox.php:230 293 #: includes/Metabox.php:270 294 #: includes/Metabox.php:312 295 msgid "Text After Link" 296 msgstr "" 297 298 #: includes/Metabox.php:231 299 msgid "Content Statement" 300 msgstr "" 301 302 #: includes/Metabox.php:236 303 msgid "Intro text disclosure" 304 msgstr "" 305 306 #: includes/Metabox.php:243 307 msgid "Default disclosure settings" 308 msgstr "" 309 310 #: includes/Metabox.php:249 311 msgid "Disclosure Type" 312 msgstr "" 313 314 #: includes/Metabox.php:263 315 msgid "Default Disclosure Tooltip" 316 msgstr "" 317 318 #: includes/Metabox.php:266 319 msgid "default_tooltip_desc" 320 msgstr "" 321 322 #: includes/Metabox.php:279 323 msgid "Content disclosure settings" 324 msgstr "" 325 326 #: includes/Metabox.php:282 327 msgid "Content Disclosure Location" 328 msgstr "" 329 330 #: includes/Metabox.php:286 331 msgid "End of Post" 332 msgstr "" 333 334 #: includes/Metabox.php:287 335 msgid "Beginning of Post" 336 msgstr "" 337 338 #: includes/Metabox.php:288 339 msgid "Custom (Via Shortcode or Action)" 340 msgstr "" 341 342 #: includes/Metabox.php:293 343 msgid "Content Disclosure Text" 344 msgstr "" 345 346 #: includes/Metabox.php:302 347 msgid "Disclosure Text" 348 msgstr "" 349 350 #: includes/Metabox.php:306 351 #: includes/Metabox.php:317 352 msgid "Default: %s" 353 msgstr "" 354 355 #: includes/Metabox.php:315 356 msgid "after_link_text_desc" 357 msgstr "" 358 359 #: includes/Metabox.php:345 360 msgid "Tracking Configuration" 361 msgstr "" 362 363 #: includes/Metabox.php:346 364 msgid "Tracking api description" 365 msgstr "" 366 367 #: includes/Metabox.php:349 368 msgid "Tracking Method" 369 msgstr "" 370 371 #: includes/Metabox.php:353 372 msgid "Javascript" 373 msgstr "" 374 375 #: includes/Metabox.php:354 376 msgid "Serverside Api" 377 msgstr "" 378 379 #: includes/Metabox.php:357 380 msgid "Javascript tracking works best if you have Google Analytics configured on your website and you place all links via shortcodes or blocks. It does not allow for target_url tracking (only cloacked_url) and might miss category parameter on manually placed links. Serverside allows you to include these parameters and allows you to track your links when placed on external source (i.e. social media). Furthermore, it does not require GA to be configured on you website. However, it is slightly harder to config and increases traffic from server." 381 msgstr "" 382 383 #: includes/Metabox.php:360 384 msgid "GA4 Measurement ID" 385 msgstr "" 386 387 #: includes/Metabox.php:366 388 msgid "GA4 Api Secret" 389 msgstr "" 390 391 #: includes/Metabox.php:372 392 msgid "Linkgenius Cookie Fallback" 393 msgstr "" 394 395 #: includes/Metabox.php:377 396 msgid "<p>When using serverside tracking, LinkGenius tries to send the userid to google analytics by reading the _ga cookie. However, if this cookie does not exist, either because Google Analytics is not used on your website or because the user has not vistited any non-redirecting pages, LinkGenius might use an own identifier to detect unique/returning visitors. This places a cookie with the id with a lifetime of 90 days.</p>" 397 msgstr "" 398 399 #: includes/Metabox.php:382 400 msgid "Don't track bots" 401 msgstr "" 402 403 #: includes/Metabox.php:393 404 msgid "Default GA tracking settings" 405 msgstr "" 406 407 #: includes/Metabox.php:401 408 msgid "Intro text GA tracking" 409 msgstr "" 410 411 #: includes/Metabox.php:410 412 msgid "Event Name" 413 msgstr "" 414 415 #: includes/Metabox.php:416 416 msgid "Event Parameters" 417 msgstr "" 418 419 #: includes/Metabox.php:420 420 msgid "You can use the variables %cloaked_url%, %target_url%, %categories%, %tags% and %referrer%" 421 msgstr "" 422 423 #: includes/Metabox.php:434 50 424 msgid "Intro text autolink" 51 425 msgstr "" 52 426 53 #: includes/CPT.php:290 54 #: assets/app/src/linkgenius-taxonomy-selector.js:72 55 #: assets/js/editor.js:757 56 msgid "Order" 57 msgstr "" 58 59 #: includes/CPT.php:298 60 msgid "A higher order means earlier executing when dealing with conflicing keywords or urls" 61 msgstr "" 62 63 #: includes/CPT.php:302 427 #: includes/Metabox.php:446 428 msgid "A lower order means earlier execution when dealing with conflicting keywords or urls" 429 msgstr "" 430 431 #: includes/Metabox.php:449 64 432 msgid "Keywords" 65 433 msgstr "" 66 434 67 #: includes/ CPT.php:305435 #: includes/Metabox.php:452 68 436 msgid "Enter keywords that will automatically create a link to this LinkGenius link if they occur in the page or post content. One keyword per line, case-insensitive." 69 437 msgstr "" 70 438 71 #: includes/ CPT.php:309439 #: includes/Metabox.php:455 72 440 msgid "URLs" 73 441 msgstr "" 74 442 75 #: includes/ CPT.php:312443 #: includes/Metabox.php:458 76 444 msgid "Enter URLs that will automatically be replaced with this LinkGenius link. One url per line." 77 445 msgstr "" 78 446 79 #: includes/CPT.php:319 80 msgid "Link Expiration (Pro)" 81 msgstr "" 82 83 #: includes/CPT.php:329 447 #: includes/Metabox.php:473 84 448 msgid "Intro text expiration" 85 449 msgstr "" 86 450 87 #: includes/ CPT.php:333451 #: includes/Metabox.php:476 88 452 msgid "Expiration Date" 89 453 msgstr "" 90 454 91 #: includes/ CPT.php:336455 #: includes/Metabox.php:479 92 456 msgid "Date after which link expires. (optional)" 93 457 msgstr "" 94 458 95 #: includes/ CPT.php:340459 #: includes/Metabox.php:482 96 460 msgid "Expiration Clicks" 97 461 msgstr "" 98 462 99 #: includes/ CPT.php:349463 #: includes/Metabox.php:491 100 464 msgid "Number of clicks after which the link expires. (optional)" 101 465 msgstr "" 102 466 103 #: includes/ CPT.php:353467 #: includes/Metabox.php:500 104 468 msgid "Redirect After Expiry" 105 469 msgstr "" 106 470 107 #: includes/ CPT.php:356471 #: includes/Metabox.php:503 108 472 msgid "The url to redirect to after link expired (used only if date or clicks are set)." 109 473 msgstr "" 110 474 111 #: includes/CPT.php:367 112 msgid "Geolocation Redirects (Pro)" 113 msgstr "" 114 115 #: includes/CPT.php:377 116 msgid "Intro text Geolocation" 117 msgstr "" 118 119 #: includes/CPT.php:383 120 msgid "Geolocation Redirects" 121 msgstr "" 122 123 #: includes/CPT.php:386 124 msgid "Redirect {#}" 125 msgstr "" 126 127 #: includes/CPT.php:387 128 msgid "Add Another Redirect" 129 msgstr "" 130 131 #: includes/CPT.php:388 132 msgid "Remove Redirect" 133 msgstr "" 134 135 #: includes/CPT.php:393 136 msgid "Country Code" 137 msgstr "" 138 139 #: includes/CPT.php:399 140 msgid "Affiliate URL" 141 msgstr "" 142 143 #: includes/CPT.php:408 144 msgid "GA Link Tracking (Pro)" 145 msgstr "" 146 147 #: includes/Editor.php:84 148 msgid "Missing required post data" 149 msgstr "" 150 151 #: includes/Metabox.php:12 152 msgid "301 Permanent Redirect" 153 msgstr "" 154 155 #: includes/Metabox.php:13 156 msgid "302 Temporary Redirect" 157 msgstr "" 158 159 #: includes/Metabox.php:14 160 msgid "307 Temporary Redirect" 161 msgstr "" 162 163 #: includes/Metabox.php:17 164 #: includes/Metabox.php:78 165 #: includes/Metabox.php:104 166 #: includes/Metabox.php:170 167 msgid "Default (%s)" 168 msgstr "" 169 170 #: includes/Metabox.php:19 171 msgid "Slug*" 172 msgstr "" 173 174 #: includes/Metabox.php:26 175 msgid "The url to link to in your content." 176 msgstr "" 177 178 #: includes/Metabox.php:30 179 msgid "Target URL*" 180 msgstr "" 181 182 #: includes/Metabox.php:36 183 msgid "The target (affiliate) link." 184 msgstr "" 185 186 #: includes/Metabox.php:39 187 msgid "Order*" 188 msgstr "" 189 190 #: includes/Metabox.php:47 191 msgid "The order for the link, used when displaying all links of a tag or category" 192 msgstr "" 193 194 #: includes/Metabox.php:53 195 msgid "Link Prefix" 196 msgstr "" 197 198 #: includes/Metabox.php:57 199 msgid "The prefix for your link, for example <i>go, recommends, out, link, affiliate</i>. The link will look like <b>%1$sprefix/slug</b>." 200 msgstr "" 201 202 #: includes/Metabox.php:61 203 msgid "Defaults" 204 msgstr "" 205 206 #: includes/Metabox.php:63 207 msgid "Intro default general setings" 208 msgstr "" 209 210 #: includes/Metabox.php:68 211 msgid "Redirect Type" 212 msgstr "" 213 214 #: includes/Metabox.php:78 215 #: includes/Metabox.php:79 216 #: includes/Metabox.php:104 217 #: includes/Metabox.php:105 218 #: includes/Metabox.php:248 219 msgid "Enabled" 220 msgstr "" 221 222 #: includes/Metabox.php:78 223 #: includes/Metabox.php:80 224 #: includes/Metabox.php:104 225 #: includes/Metabox.php:106 226 msgid "Disabled" 227 msgstr "" 228 229 #: includes/Metabox.php:84 230 msgid "No Cloaking" 231 msgstr "" 232 233 #: includes/Metabox.php:86 234 msgid "When checked affiliate url of LinkGenius Links will be outputted in content instead of the slug." 235 msgstr "" 236 237 #: includes/Metabox.php:115 238 msgid "Default Link appearance" 239 msgstr "" 240 241 #: includes/Metabox.php:116 242 msgid "Intro text appearance" 243 msgstr "" 244 245 #: includes/Metabox.php:119 246 msgid "Global CSS Classes" 247 msgstr "" 248 249 #: includes/Metabox.php:119 250 msgid "CSS Classes" 251 msgstr "" 252 253 #: includes/Metabox.php:122 254 msgid "Comma separated list of CSS classes" 255 msgstr "" 256 257 #: includes/Metabox.php:125 258 msgid "Open in New Tab" 259 msgstr "" 260 261 #: includes/Metabox.php:127 262 msgid "Open the URL in a new tab when clicked. Done by adding target=\"_blank\" tag." 263 msgstr "" 264 265 #: includes/Metabox.php:130 266 msgid "Parameter Forwarding" 267 msgstr "" 268 269 #: includes/Metabox.php:134 270 msgid "Sponsored Attribute" 271 msgstr "" 272 273 #: includes/Metabox.php:138 274 msgid "Nofollow Attribute" 275 msgstr "" 276 277 #: includes/Metabox.php:142 278 msgid "Global Additional Rel Tags" 279 msgstr "" 280 281 #: includes/Metabox.php:142 282 msgid "Additional Rel Tags" 283 msgstr "" 284 285 #: includes/Metabox.php:145 286 msgid "Comma separated list of additional rel tags" 287 msgstr "" 288 289 #: includes/Metabox.php:155 290 msgid "None" 291 msgstr "" 292 293 #: includes/Metabox.php:156 294 msgid "Tooltip" 295 msgstr "" 296 297 #: includes/Metabox.php:157 298 #: includes/Metabox.php:187 299 #: includes/Metabox.php:224 300 msgid "Text After Link" 301 msgstr "" 302 303 #: includes/Metabox.php:158 304 msgid "Content Statement" 305 msgstr "" 306 307 #: includes/Metabox.php:163 308 msgid "Intro text disclosure" 309 msgstr "" 310 311 #: includes/Metabox.php:166 312 msgid "Disclosure Type" 313 msgstr "" 314 315 #: includes/Metabox.php:180 316 msgid "Default Disclosure Tooltip" 317 msgstr "" 318 319 #: includes/Metabox.php:183 320 msgid "default_tooltip_desc" 321 msgstr "" 322 323 #: includes/Metabox.php:194 324 msgid "Content Disclosure Location" 325 msgstr "" 326 327 #: includes/Metabox.php:198 328 msgid "End of Post" 329 msgstr "" 330 331 #: includes/Metabox.php:199 332 msgid "Beginning of Post" 333 msgstr "" 334 335 #: includes/Metabox.php:200 336 msgid "Custom (Via Shortcode or Action)" 337 msgstr "" 338 339 #: includes/Metabox.php:205 340 msgid "Content Disclosure Text" 341 msgstr "" 342 343 #: includes/Metabox.php:214 344 msgid "Disclosure Text" 345 msgstr "" 346 347 #: includes/Metabox.php:218 348 #: includes/Metabox.php:229 349 msgid "Default: %s" 350 msgstr "" 351 352 #: includes/Metabox.php:227 353 msgid "after_link_text_desc" 354 msgstr "" 355 356 #: includes/Metabox.php:245 357 msgid "Intro text GA tracking" 358 msgstr "" 359 360 #: includes/Metabox.php:253 361 msgid "Event Name" 362 msgstr "" 363 364 #: includes/Metabox.php:258 365 msgid "Event Parameters" 366 msgstr "" 367 368 #: includes/Settings.php:60 369 #: includes/Settings.php:61 475 #: includes/Settings.php:67 476 #: includes/Settings.php:68 370 477 msgid "Settings" 371 478 msgstr "" 372 479 373 #: includes/Settings.php: 65480 #: includes/Settings.php:72 374 481 msgid "General" 375 482 msgstr "" 376 483 377 #: includes/Settings.php:80 484 #: includes/Settings.php:87 485 #: includes/Settings.php:93 378 486 msgid "Appearance" 379 487 msgstr "" 380 488 381 #: includes/Settings.php:86 382 msgid "appearance" 383 msgstr "" 384 385 #: includes/Settings.php:102 386 #: includes/Settings.php:108 489 #: includes/Settings.php:109 490 #: includes/Settings.php:115 387 491 msgid "Disclosure" 388 492 msgstr "" 389 493 390 #: includes/Settings.php: 124391 msgid " Link Tracking"392 msgstr "" 393 394 #: includes/Settings.php: 130395 msgid " Tracking"494 #: includes/Settings.php:206 495 msgid "Affiliate Link" 496 msgstr "" 497 498 #: includes/Settings.php:207 499 msgid " (Affiliate Link)" 396 500 msgstr "" 397 501 398 502 #: includes/Settings.php:209 399 msgid "Affiliate Link"400 msgstr ""401 402 #: includes/Settings.php:210403 msgid " (Affiliate Link)"404 msgstr ""405 406 #: includes/Settings.php:212407 503 msgid "default_content_disclosure_text" 408 504 msgstr "" 409 505 410 #: includes/Shortcode.php: 103506 #: includes/Shortcode.php:59 411 507 msgid "You must specify a category or tag" 412 508 msgstr "" 413 509 414 510 #: assets/app/src/linkgenius-block.js:39 415 #: assets/js/editor .js:78511 #: assets/js/editor/editor.js:2 416 512 msgid "No LinkGenius Link Selected" 417 513 msgstr "" 418 514 419 #: assets/app/src/linkgenius-block.js:5 2420 #: assets/js/editor .js:91515 #: assets/app/src/linkgenius-block.js:51 516 #: assets/js/editor/editor.js:2 421 517 msgid "Edit LinkGenius Link" 422 518 msgstr "" 423 519 424 #: assets/app/src/linkgenius-block.js:5 2425 #: assets/js/editor .js:91520 #: assets/app/src/linkgenius-block.js:51 521 #: assets/js/editor/editor.js:2 426 522 msgid "Preview LinkGenius Link" 427 523 msgstr "" 428 524 525 #: assets/app/src/linkgenius-block.js:58 526 #: assets/app/src/linkgenius-link-format.js:19 527 #: assets/app/src/linkgenius-link-format.js:76 528 #: assets/js/editor/editor.js:2 529 msgid "LinkGenius Link" 530 msgstr "" 531 429 532 #: assets/app/src/linkgenius-block.js:59 430 #: assets/app/src/linkgenius-link-format.js:19 431 #: assets/js/editor.js:98 432 #: assets/js/editor.js:260 433 msgid "LinkGenius Link" 434 msgstr "" 435 436 #: assets/app/src/linkgenius-block.js:60 437 #: assets/js/editor.js:98 533 #: assets/js/editor/editor.js:2 438 534 msgid "Text" 439 535 msgstr "" 440 536 441 #: assets/app/src/linkgenius-block.js:6 4442 #: assets/js/editor .js:105537 #: assets/app/src/linkgenius-block.js:63 538 #: assets/js/editor/editor.js:2 443 539 msgid "Link" 444 540 msgstr "" 445 541 446 542 #: assets/app/src/linkgenius-link-format.js:64 447 #: assets/js/editor.js:304 543 msgid "Remove LinkGenius Link" 544 msgstr "" 545 546 #: assets/app/src/linkgenius-link-selector.js:75 547 #: assets/js/editor/editor.js:2 548 msgid "No link selected" 549 msgstr "" 550 551 #: assets/app/src/linkgenius-link-selector.js:77 552 #: assets/js/editor/editor.js:2 553 msgid "Edit" 554 msgstr "" 555 556 #: assets/app/src/linkgenius-taxonomy-selector.js:47 557 #: assets/js/editor/editor.js:2 558 msgid "Edit LinkGenius List" 559 msgstr "" 560 561 #: assets/app/src/linkgenius-taxonomy-selector.js:47 562 #: assets/js/editor/editor.js:2 563 msgid "Preview LinkGenius List" 564 msgstr "" 565 566 #: assets/app/src/linkgenius-taxonomy-selector.js:60 567 #: assets/js/editor/editor.js:2 568 msgid "LinkGenius Category List" 569 msgstr "" 570 571 #: assets/app/src/linkgenius-taxonomy-selector.js:60 572 #: assets/js/editor/editor.js:2 573 msgid "LinkGenius Tag List" 574 msgstr "" 575 576 #: assets/app/src/linkgenius-taxonomy-selector.js:62 577 #: assets/js/editor/editor.js:2 578 msgid "Category" 579 msgstr "" 580 581 #: assets/app/src/linkgenius-taxonomy-selector.js:62 582 #: assets/js/editor/editor.js:2 583 msgid "Tag" 584 msgstr "" 585 586 #: assets/app/src/linkgenius-taxonomy-selector.js:70 587 #: assets/js/editor/editor.js:2 588 msgid "Sort By" 589 msgstr "" 590 591 #: assets/app/src/linkgenius-taxonomy-selector.js:73 592 #: assets/js/editor/editor.js:2 593 msgid "Title" 594 msgstr "" 595 596 #: assets/app/src/linkgenius-taxonomy-selector.js:77 597 #: assets/js/editor/editor.js:2 598 msgid "Template or seperator" 599 msgstr "" 600 601 #: assets/app/src/linkgenius-taxonomy-selector.js:78 602 #: assets/js/editor/editor.js:2 603 msgid "If {links}{link}{/links} is not found value is treated as seperator. For example, Set to \", \" to make links comma seperated" 604 msgstr "" 605 606 #: assets/app/src/linkgenius-taxonomy-selector.js:127 607 #: assets/js/editor/editor.js:2 608 msgid "No LinkGenius links found" 609 msgstr "" 610 611 #: assets/js/editor/editor.js:2 448 612 msgid "Remove All Affiliate Link" 449 613 msgstr "" 450 614 451 #: assets/app/src/linkgenius-link-format.js:76 452 #: assets/js/editor.js:309 615 #: assets/js/editor/editor.js:2 453 616 msgid "All Affiliate Link" 454 617 msgstr "" 455 456 #: assets/app/src/linkgenius-link-selector.js:76457 #: assets/js/editor.js:465458 msgid "No link selected"459 msgstr ""460 461 #: assets/app/src/linkgenius-link-selector.js:78462 #: assets/js/editor.js:467463 msgid "Edit"464 msgstr ""465 466 #: assets/app/src/linkgenius-taxonomy-selector.js:47467 #: assets/js/editor.js:731468 msgid "Edit LinkGenius List"469 msgstr ""470 471 #: assets/app/src/linkgenius-taxonomy-selector.js:47472 #: assets/js/editor.js:731473 msgid "Preview LinkGenius List"474 msgstr ""475 476 #: assets/app/src/linkgenius-taxonomy-selector.js:60477 #: assets/js/editor.js:745478 msgid "LinkGenius Category List"479 msgstr ""480 481 #: assets/app/src/linkgenius-taxonomy-selector.js:60482 #: assets/js/editor.js:745483 msgid "LinkGenius Tag List"484 msgstr ""485 486 #: assets/app/src/linkgenius-taxonomy-selector.js:62487 #: assets/js/editor.js:745488 msgid "Category"489 msgstr ""490 491 #: assets/app/src/linkgenius-taxonomy-selector.js:62492 #: assets/js/editor.js:745493 msgid "Tag"494 msgstr ""495 496 #: assets/app/src/linkgenius-taxonomy-selector.js:70497 #: assets/js/editor.js:755498 msgid "Sort By"499 msgstr ""500 501 #: assets/app/src/linkgenius-taxonomy-selector.js:73502 #: assets/js/editor.js:760503 msgid "Title"504 msgstr ""505 506 #: assets/app/src/linkgenius-taxonomy-selector.js:77507 #: assets/js/editor.js:769508 msgid "Template or seperator"509 msgstr ""510 511 #: assets/app/src/linkgenius-taxonomy-selector.js:78512 #: assets/js/editor.js:771513 msgid "If {links}{link}{/links} is not found value is treated as seperator. For example, Set to \", \" to make links comma seperated"514 msgstr ""515 516 #: assets/app/src/linkgenius-taxonomy-selector.js:126517 msgid "No LinkGenius links found"518 msgstr ""519 520 #: assets/js/editor.js:867521 msgid "No LinkGenie links found"522 msgstr "" -
linkgenius/tags/1.1.0/linkgenius.php
r2967528 r2969592 4 4 Plugin URI: https://all-affiliates.com/linkgenius/ 5 5 Description: LinkGenius is a powerful (affiliate) link management plugin. With LinkGenius, you can effortlessly organize, optimize, and track your (affiliate) links, unlocking a new level of efficiency. 6 Version: 1. 0.16 Version: 1.1.0 7 7 Author: all-affiliates.com 8 8 Author URI: https://all-affiliates.com … … 27 27 } 28 28 29 // //Include necessary files and classes29 // Include necessary files and classes 30 30 require_once plugin_dir_path(__FILE__). 'vendor/cmb2/cmb2/init.php'; 31 31 require_once plugin_dir_path(__FILE__). 'vendor/jcchavezs/cmb2-conditionals/cmb2-conditionals.php'; … … 61 61 // Perform deactivation tasks if needed 62 62 } 63 64 // /**65 // * Undocumented function66 // *67 // * @param CMB2 $arg68 // * @return void69 // */70 // function linkgenius_link_metabox($arg) {71 // if($arg->prop('classes') === 'linkgenius-pro') {72 // $arg->set_prop("title", "test");73 // $arg->set_prop("classes", "");74 // }75 // return $arg;76 // }77 // add_filter('linkgenius_link_metabox', 'linkgenius_link_metabox');78 79 80 // add_action('init', function() {81 // wp_register_script('awp-myfirstblock-js', plugins_url('/assets/assets/js/block-awhitepixel-myfirstblock.js', __FILE__));82 83 // register_block_type('awp/firstblock', [84 // 'editor_script' => 'awp-myfirstblock-js',85 // ]);86 // }); -
linkgenius/tags/1.1.0/readme.txt
r2967528 r2969592 1 === LinkGenius ===1 === Affiliate Link Manager and Shortener Plugin - LinkGenius === 2 2 Contributors: all-affiliates 3 Tags: affiliate links, link manager, link branding, affiliate disclosure, link shortener, affiliate, links, link management, shorten, management, affiliate link manager, link cloaking, link tracking, link shortening, link redirection, affiliate link management, linkgenius, link genius, shorturl, short links, pretty links, better links, shorter links, bitly, tinyurl, 301, 302, 307, redirects, affiliates, affiliate marketing, plugin, url cloaking, url redirection, url shortener, shorten urls, affiilate urls, affiliate seo, affiliate auto link, automatic linking, link tracker, affiliate url, affiliate marketing plugin, manage affiliate links 3 Tags: affiliate links, link manager, link branding, affiliate disclosure, link shortener, affiliate, links, link management, shorten, management, affiliate link manager, link cloaking, link tracking, link shortening, link redirection, affiliate link management, linkgenius, link genius, shorturl, short links, pretty links, better links, shorter links, bitly, tinyurl, 301, 302, 307, redirects, affiliates, affiliate marketing, plugin, url cloaking, url redirection, url shortener, shorten urls, affiilate urls, affiliate seo, affiliate auto link, automatic linking, link tracker, affiliate url, affiliate marketing plugin, manage affiliate links, ftc guidelines 4 4 Donate link: https://all-affiliates.com/linkgenius/ 5 5 Requires at least: 6.2 6 6 Tested up to: 6.3.1 7 7 Requires PHP: 8.0 8 Stable tag: 1. 0.18 Stable tag: 1.1.0 9 9 License: GPL2 10 10 License URI: http://www.gnu.org/licenses/gpl-2.0.html 11 11 12 12 == Description == 13 **Manage your affiliate links with genius precision.** 14 13 15 LinkGenius is a powerful affiliate link management plugin that allows you simplify the management of your affiliate links. 14 Ensuring a seamless user experience for your audience while complying with FTC guidelines and unlocking a newlevel of efficiency.16 Ensuring a seamless user experience while complying with FTC guidelines and unlocking a new genius level of efficiency. 15 17 Let’s take a closer look at what LinkGenius has to offer: 16 18 17 19 18 20 = Link management: = 19 Easily add, edit, and delete affiliate links using LinkGenius. Keep your links organized and easily accessible by categorizing them as needed.20 = Easily add individual links or link lists =21 Easily add, edit, and delete affiliate links using LinkGenius. Keep your links organized and easily accessible by categorizing and tagging them as needed. 22 = Easily add individual links or link lists in your posts or pages = 21 23 Display individual links or a list of affiliate links based on tags or categories to provide a cohesive representation of related links. Customize the layout using templates or separators and order them alphabetically or with a specific order. LinkGenius supports multiple bocks for creating links or lists, shortcodes or by simply selecting a text in the block editor. 22 24 = Customizable link appearance = … … 24 26 = Affiliate disclosure = 25 27 Maintain compliance with FTC guidelines and build trust with your audience by adding an affiliate disclosure statement to your content. Alternatively, you can utilize a tooltip or appended text to clearly indicate which links are affiliate links. 26 = Link cloaking =27 Enhance the appearance and security of your affiliate links by cloaking them. Create shorter, branded, and more memorable links that are less likely to be blocked by ad-blockers or marked as spam. Customize link cloaking on a per-link basis.28 = Link Branding = 29 Enhance the appearance and security of your affiliate links by branding them. Create shorter, branded, and more memorable links that are less likely to be blocked by ad-blockers or marked as spam. Customize link cloaking on a per-link basis. 28 30 = Multiple Redirect Types = Take full control over how your users are redirected, including 301 (Permanent), 302 (Temporary), 307 (Temporary) redirects. 29 31 30 32 = Pro Features = 31 LinkGenius is developing additional advanced features for professional users. Go to [All-affiliates.com](https://all-affiliates.com/linkgenius/pro/) to get notified when it is released.33 While LinkGenius is completely free, there is also a pro version with additional features available. Go to [All-affiliates.com](https://all-affiliates.com/linkgenius/pro/) to get more information on the pro version. 32 34 - Automatic link insertion: Automatically insert affiliate links into your content by linking specific keywords to affiliate URLs. Exclude certain pages or posts from automatic link insertion. 33 - Destination checker: Easily check the final URL of an affiliate link and store it for future comparison.35 - Automatic link replacement: Automatically replace URLs in your content with the either shortened or uncloaked LinkGenius (affiliate) link. 34 36 - Expiring Links: Set an expiration date on your links and redirect users to a specific location after clicking an expired link. You can also make links expire after a certain number of clicks. 35 - Geotargeting: Redirect visitors based on their country of origin to geographically appropriate affiliate URLs. Show different links in tag or category lists based on the visitor's country.37 - Geotargeting: Redirect visitors based on their country of origin to geographically appropriate affiliate URLs. 36 38 - Link tracking with Google Analytics: Track link clicks using Google Analytics, either via JavaScript or server-side. Customize event names and additional parameters. 39 - Destination checker (Comming Soon): Easily check the final URL of an affiliate link and store it for future comparison. 37 40 38 41 == Installation == … … 68 71 Yes, LinkGenius provides the functionality to categorize your affiliate links, making it easier to organize and display related links. You can create lists of affiliate links based on tags or categories, with customizable layouts and sorting options. 69 72 70 = What is link cloaking, and why should I use it? =73 = What is link branding/cloaking, and why should I use it? = 71 74 72 Link cloaking is a feature in LinkGenius that creates shorter, branded, and more memorable affiliate links. It also helps to hide the original affiliate link, making it less likely to be blocked by ad-blockers or marked as spam.75 Link brandnig or link cloaking is a feature in LinkGenius that creates shorter, branded, and more memorable affiliate links. It also helps to hide the original affiliate link, making it less likely to be blocked by ad-blockers or marked as spam. 73 76 74 77 = How can I track the performance of my affiliate links? = … … 85 88 86 89 == Changelog == 90 91 = 1.1.0 = 92 - Added capability management 93 - Added easy copying of branded URLs 94 - Improved layout affiliate disclosure tooltip 95 - Fixed default prefix setting mismatch displayed and applied 87 96 88 97 = 1.0.1 = -
linkgenius/trunk/assets/css/tooltip.css
r2967528 r2969592 6 6 /* linkgenius-tooltip text */ 7 7 .linkgenius-tooltip .linkgenius-tooltiptext { 8 position: absolute; 8 9 visibility: hidden; 9 width: 120px; 10 bottom: 100%; 11 left: 50%; 12 transform: translateX(-50%); 13 white-space: nowrap; 14 width: fit-content; 15 padding: 0 1em; 10 16 background-color: black; 11 17 color: #fff; 12 18 text-align: center; 13 padding: 5px 0;14 19 border-radius: 6px; 15 16 width: 120px; 17 bottom: 100%; 18 left: 50%; 19 margin-left: -60px; /* Use half of the width (120/2 = 60), to center the tooltip */ 20 position: absolute; 20 opacity: 0; 21 transition: opacity 0.5s; 21 22 } 22 23 … … 35 36 .linkgenius-tooltip:hover .linkgenius-tooltiptext { 36 37 visibility: visible; 38 opacity: 1; 37 39 } -
linkgenius/trunk/assets/js/linkgenius-posttype.js
r2967528 r2969592 13 13 }); 14 14 }) 15 16 $('#copy_url').on('click', function(event) { 17 event.preventDefault(); 18 var copyText = document.getElementById("general_slug"); 19 20 // Select the text field 21 copyText.select(); 22 copyText.setSelectionRange(0, 99999); // For mobile devices 23 24 let text = ""; 25 for (var i = 0; i < copyText.parentNode.childNodes.length; i++) { 26 var child = copyText.parentNode.childNodes[i]; 27 28 // Check if the child is a text node 29 if (child.nodeType === Node.TEXT_NODE) { 30 text += child.textContent.trim(); 31 } 32 } 33 text += copyText.value.trim(); 34 // Copy the text inside the text field 35 if(navigator.clipboard !== undefined) { 36 navigator.clipboard.writeText(text); 37 } 38 else { 39 // deprecated backup method when no ssl is available 40 const el = document.createElement('input'); 41 el.value = text; 42 document.body.appendChild(el); 43 el.select(); 44 document.execCommand('copy'); 45 document.body.removeChild(el); 46 } 47 }); 15 48 }); -
linkgenius/trunk/includes/CPT.php
r2967528 r2969592 5 5 6 6 class CPT { 7 const TYPE_LINK = 'linkgenius_link';8 const TYPE_CATEGORY = 'linkgenius_category';9 const TYPE_TAG = 'linkgenius_tag';7 public const TYPE_LINK = 'linkgenius_link'; 8 public const TYPE_CATEGORY = 'linkgenius_category'; 9 public const TYPE_TAG = 'linkgenius_tag'; 10 10 11 11 private function __construct() { … … 56 56 'not_found_in_trash' => __( 'No LinkGenius Links found in Trash.', 'text-domain' ), 57 57 ); 58 58 $role = Settings::instance()->get_settings()['general_role']; 59 59 $args = array( 60 60 'labels' => $labels, … … 71 71 'menu_position' => null, 72 72 'supports' => array( 'title'), 73 'show_in_rest' => true 73 'show_in_rest' => true, 74 'capabilities' => array( 75 'edit_post' => $role, 76 'read_post' => $role, 77 'delete_post' => $role, 78 'create_posts' => $role, 79 'edit_posts' => $role, 80 'edit_others_posts' => $role, 81 'publish_posts' => $role, 82 'read_private_posts' => $role, 83 'read' => 'read', 84 'delete_posts' => $role, 85 'delete_private_posts' => $role, 86 'delete_published_posts' => $role, 87 'delete_others_posts' => $role, 88 'edit_private_posts' => $role, 89 'edit_published_posts' => $role 90 ), 74 91 ); 75 92 if(get_option('linkgenius_should_flush', false)) { … … 102 119 ); 103 120 121 $role = Settings::instance()->get_settings()['general_role']; 104 122 $args = array( 105 123 'labels' => $labels, 106 124 'hierarchical' => true, 107 'public' => true, 125 'public' => false, 126 'show_ui' => true, 108 127 'show_admin_column' => true, 109 128 'show_in_nav_menus' => true, 110 129 'show_tagcloud' => true, 111 'rewrite' => array( 'slug' => __( 'linkgenius-category', 'text-domain' ) ), 112 'show_in_rest' => true 113 130 'rewrite' => false, 131 'show_in_rest' => true, 132 'capabilities' => array( 133 'manage_terms' => $role, 134 'edit_terms' => $role, 135 'delete_terms' => $role, 136 'assign_terms' => $role 137 ) 114 138 ); 115 139 … … 139 163 ); 140 164 165 $role = Settings::instance()->get_settings()['general_role']; 141 166 $args = array( 142 167 'labels' => $labels, 143 168 'hierarchical' => false, 144 'public' => true, 169 'public' => false, 170 'show_ui' => true, 145 171 'show_admin_column' => true, 146 172 'show_in_nav_menus' => true, 147 173 'show_tagcloud' => true, 148 'rewrite' => array( 'slug' => __( 'linkgenius-tag', 'text-domain' ) ),174 'rewrite' => false, 149 175 'show_in_rest' => true, 176 'capabilities' => array( 177 'manage_terms' => $role, 178 'edit_terms' => $role, 179 'delete_terms' => $role, 180 'assign_terms' => $role 181 ) 150 182 ); 151 183 … … 280 312 'classes' => 'linkgenius-pro' 281 313 )); 282 283 $autolink_metabox->add_field(array( 284 'id' => 'autolink_title', 285 'type' => 'title', 286 'desc' => __('Intro text autolink', 'linkgenius') 287 )); 288 289 $autolink_metabox->add_field(array( 290 'name' => __('Order', 'linkgenius'), 291 'id' => 'autolink_order', 292 'type' => 'text_small', 293 'attributes' => array ( 294 'required' => 'required', 295 'type' => 'number', 296 'data-default' => '0' 297 ), 298 "default" => "0", 299 'desc' => __('A higher order means earlier executing when dealing with conflicing keywords or urls', 'linkgenius') 300 )); 301 302 $autolink_metabox->add_field(array( 303 'name' => __('Keywords', 'linkgenius'), 304 'id' => 'autolink_keywords', 305 'type' => 'textarea_small', 306 'desc' => __('Enter keywords that will automatically create a link to this LinkGenius link if they occur in the page or post content. One keyword per line, case-insensitive.', 'linkgenius') 307 )); 308 309 $autolink_metabox->add_field(array( 310 'name' => __('URLs', 'linkgenius'), 311 'id' => 'autolink_urls', 312 'type' => 'textarea_small', 313 'desc' => __('Enter URLs that will automatically be replaced with this LinkGenius link. One url per line.', 'linkgenius') 314 )); 314 $fields = $metabox->get_autolink_fields(); 315 foreach($fields as $field) { 316 $autolink_metabox->add_field($field); 317 } 315 318 $autolink_metabox = apply_filters("linkgenius_link_metabox", $autolink_metabox); 316 319 … … 324 327 'classes' => 'linkgenius-pro' 325 328 )); 326 327 $expiration_metabox->add_field(array( 328 'id' => 'expiration_title', 329 'type' => 'title', 330 'desc' => __('Intro text expiration', 'linkgenius') 331 )); 332 333 $expiration_metabox->add_field(array( 334 'name' => __('Expiration Date', 'linkgenius'), 335 'id' => 'expiration_date', 336 'type' => 'text_datetime_timestamp', 337 'desc' => __('Date after which link expires. (optional)', 'linkgenius') 338 )); 339 340 $expiration_metabox->add_field(array( 341 'name' => __('Expiration Clicks', 'linkgenius'), 342 'id' => 'expiration_clicks', 343 'type' => 'text_small', 344 'attributes' => array( 345 'type' => 'number', 346 'pattern' => '\d*', 347 ), 348 'sanitization_cb' => 'absint', 349 'escape_cb' => 'absint', 350 'desc' => __('Number of clicks after which the link expires. (optional)', 'linkgenius') 351 )); 352 353 $expiration_metabox->add_field(array( 354 'name' => __('Redirect After Expiry', 'linkgenius'), 355 'id' => 'redirect_after_expiry', 356 'type' => 'text_url', 357 'desc' => __('The url to redirect to after link expired (used only if date or clicks are set).', 'linkgenius'), 358 'default' => '/', 359 'attributes' => array( 360 'required' => 'required' 361 ) 362 )); 329 $fields = $metabox->get_expiration_fields(); 330 foreach($fields as $field) { 331 $expiration_metabox->add_field($field); 332 } 363 333 $expiration_metabox = apply_filters("linkgenius_link_metabox", $expiration_metabox); 364 334 … … 382 352 'id' => 'geolocation_redirects', 383 353 'type' => 'group', 384 'description' => __('Geolocation R edirects', 'linkgenius'),354 'description' => __('Geolocation Rules', 'linkgenius'), 385 355 'repeatable' => true, 386 356 'options' => array( … … 398 368 399 369 $geolocation_metabox->add_group_field($geolocation_redirects_group, array( 400 'name' => __(' AffiliateURL', 'linkgenius'),401 'id' => ' affiliate_url',370 'name' => __('Target URL', 'linkgenius'), 371 'id' => 'target_url', 402 372 'type' => 'text_url', 403 373 )); 404 374 $geolocation_metabox = apply_filters("linkgenius_link_metabox", $geolocation_metabox); 375 376 377 // user_agent Metabox 378 $user_agent_metabox = new_cmb2_box(array( 379 'id' => 'linkgenius_link_user_agent_metabox', 380 'title' => __('Useragent Rules (Pro)', 'linkgenius'), 381 'object_types' => array(self::TYPE_LINK), 382 'context' => 'normal', 383 'priority' => 'high', 384 'classes' => 'linkgenius-pro' 385 )); 386 387 $user_agent_metabox->add_field(array( 388 'id' => 'user_agent_title', 389 'type' => 'title', 390 'desc' => __('Intro text useragent', 'linkgenius') 391 )); 392 393 $user_agent_redirects_group = $user_agent_metabox->add_field(array( 394 'id' => 'user_agent_redirects', 395 'type' => 'group', 396 'description' => __('Useragent Redirects', 'linkgenius'), 397 'repeatable' => true, 398 'options' => array( 399 'group_title' => __('Redirect {#}', 'linkgenius'), 400 'add_button' => __('Add Another Redirect', 'linkgenius'), 401 'remove_button' => __('Remove Redirect', 'linkgenius'), 402 ), 403 )); 404 405 $user_agent_metabox->add_group_field($user_agent_redirects_group, array( 406 'name' => __('User Agent Regex', 'linkgenius'), 407 'id' => 'user_agent_regex', 408 'type' => 'text', 409 )); 410 411 $user_agent_metabox->add_group_field($user_agent_redirects_group, array( 412 'name' => __('Target URL', 'linkgenius'), 413 'id' => 'target_url', 414 'type' => 'text_url', 415 )); 416 $user_agent_metabox = apply_filters("linkgenius_link_metabox", $user_agent_metabox); 417 405 418 406 419 // GA Link Tracking Metabox … … 413 426 'classes' => 'linkgenius-pro' 414 427 )); 415 416 $fields = array_merge(array(array( 417 'id' => 'tracking_title', 418 'type' => 'title', 419 'desc' => __('Intro text GA tracking', 'linkgenius') 420 )), 421 $metabox->get_analytics_fields()); 428 $fields = $metabox->get_analytics_fields(); 422 429 foreach($fields as $field) { 423 430 $ga_tracking_metabox->add_field($field); … … 476 483 public static function instance() { 477 484 static $instance = null; 478 if($instance == null) 479 $instance = new self(); 485 if($instance == null) { 486 $instance = new static(); 487 } 480 488 return $instance; 481 489 } -
linkgenius/trunk/includes/Discloser.php
r2967528 r2969592 69 69 public static function instance() { 70 70 static $instance = null; 71 if($instance == null) 72 $instance = new self(); 71 if($instance == null) { 72 $instance = new static(); 73 } 73 74 return $instance; 74 75 } -
linkgenius/trunk/includes/Editor.php
r2967528 r2969592 7 7 function __construct() 8 8 { 9 add_action('init', function() {10 if(current_user_can('edit_posts')) {11 // add_filter('mce_external_plugins', array( $this , 'enqueue_linkgenius_link_picker_script' ));12 // add_filter('mce_buttons', array( $this , 'add_linkgenius_link_button_to_editor_toolbar' ));13 }14 });15 9 add_filter( 'block_categories_all', [$this, 'add_linkgenius_link_block_category']); 16 10 // enqueue scripts and styles for the editor … … 43 37 array( 44 38 'slug' => 'linkgenius', 45 'title' => ' All AffiliateLinks',39 'title' => 'LinkGenius Links', 46 40 ), 47 41 ), … … 49 43 ); 50 44 } 51 52 // public function add_linkgenius_link_button_to_editor_toolbar($buttons) {53 // $buttons[] = 'linkgenius_link_picker';54 // return $buttons;55 // }56 57 58 // public function enqueue_linkgenius_link_picker_script($plugin_array) {59 // $plugin_array['linkgenius_link_picker'] = linkgenius_url.'/assets/js/admin/linkgenius-link-picker.js';60 // return $plugin_array;61 // }62 45 63 46 // … … 125 108 ); 126 109 $query = new WP_Query( $args ); 127 // @header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );128 110 129 111 $links = array_map(fn($post) => [ … … 153 135 $shortcode = "[linkgenius-list ".$_GET['taxonomy']."=".sanitize_title($_GET['item_slug'])." sort=".$_GET['sort']."]".wp_kses_post($_GET['template'])."[/linkgenius-list]"; 154 136 $preview = do_shortcode($shortcode); 155 // @header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );156 137 wp_send_json_success( $preview); 157 138 } -
linkgenius/trunk/includes/Metabox.php
r2967528 r2969592 5 5 class Metabox 6 6 { 7 public function cmb2_render_callback_for_clicks( $field, $escaped_value, $object_id, $object_type, $field_type_object ) { 8 ?><span id="clicks_label"><?php echo $escaped_value ?></span> 9 <a href='#' id='reset_clicks'><?php _e("Reset Clicks", "linkgenius_pro")?></a> 10 <script type="text/javascript"> 11 jQuery(document).ready(function($) { 12 console.log("loaded"); 13 $('#reset_clicks').on('click', function(e) { 14 e.preventDefault(); 15 jQuery.ajax({ 16 type: "POST", 17 url: ajaxurl, 18 data: { 19 action: 'linkgenius_reset_clicks', 20 linkgenius_id: <?php echo $object_id; ?> 21 }, 22 success: function(response) { 23 $('#clicks_label').text("0"); 24 }, 25 error: function(error) { 26 console.log(error); 27 } 28 }) 29 }) 30 }) 31 </script> 32 <?php 33 } 34 35 public function sanitize_checkbox($value, $field_args, $field) { 36 // Return 0 instead of false if null value given. Otherwise no value will be saved and default value will be applied 37 return is_null($value) ? 0 : $value; 38 } 39 40 /** 41 * Adds the check options to a field, if for_settings is true a checkbox is added, if false a select with options is added 42 * 43 * @param [type] $field 44 * @param [type] $for_settings 45 * @return void 46 */ 47 protected function add_check_options($field, $for_settings) { 48 if ($for_settings) { 49 $additions = array( 50 'type' => 'checkbox', 51 'sanitization_cb' => [$this, 'sanitize_checkbox'], 52 ); 53 if (isset(Settings::$DEFAULTS['appearance'][$field['id']])) 54 $additions['default'] = Settings::$DEFAULTS['appearance'][$field['id']]; 55 return $field + $additions; 56 } else { 57 $default = Settings::instance()->get_settings()[$field['id']]; 58 return $field + array( 59 'type' => 'select', 'options' => 60 array( 61 'default' => sprintf(__('Default (%s)', 'linkgenius'), $default ? __('Enabled', 'linkgenius') : __('Disabled', 'linkgenius')), 62 '1' => __('Enabled', 'linkgenius'), 63 '0' => __('Disabled', 'linkgenius') 64 ) 65 ); 66 } 67 } 68 7 69 public function get_general_fields($for_settings = false) 8 70 { … … 24 86 ), 25 87 'before_field' => site_url('/') . $settings['general_prefix'].'/', 26 'desc' => __(' The url to link to in your content.', 'linkgenius'),88 'desc' => __('<a href="#" id="copy_url">Copy</a><p>The url to link to in your content.</p>', 'linkgenius'), 27 89 'sanitization_cb' => 'sanitize_title' 28 90 ); … … 54 116 'name' => __('Link Prefix', 'linkgenius'), 55 117 'type' => 'text', 56 'default' => 'go',118 'default' => Settings::$DEFAULTS['general']['general_prefix'] ?? "go", 57 119 'sanitization_cb' => 'sanitize_title', 58 120 'desc' => sprintf(__('The prefix for your link, for example <i>go, recommends, out, link, affiliate</i>. The link will look like <b>%1$sprefix/slug</b>.', 'linkgenius'), site_url('/')) 121 ); 122 $fields[] = array( 123 'id' => 'general_role', 124 'name' => __('Mimimum Role Linkmanagement', 'linkgenius'), 125 'type' => 'select', 126 'options' => array( // keys are the introduced capabilities for that role 127 'manage_options' => __('Administrator', 'linkgenius'), 128 'delete_pages' => __('Editor', 'linkgenius'), 129 'publish_posts' => __('Author', 'linkgenius'), 130 'edit_posts' => __('Contributor', 'linkgenius'), 131 'read' => __('Subscriber', 'linkgenius') 132 ), 133 'default' => Settings::$DEFAULTS['general']['general_role'], 134 'desc' => __('The minimum role a user needs in order to create, edit or delete LinkGenius Links. The settings page will remain visible for administrators only.', 'linkgenius') 59 135 ); 60 136 $fields[] = array( … … 92 168 public function get_link_appearance_fields($for_settings = false) 93 169 { 94 $add_check_options = function ($field) use ($for_settings) {95 if ($for_settings) {96 $additions = array('type' => 'checkbox');97 if (isset(Settings::$DEFAULTS['appearance'][$field['id']]))98 $additions['default'] = Settings::$DEFAULTS['appearance'][$field['id']];99 return $field + $additions;100 } else {101 $default = Settings::instance()->get_settings()[$field['id']];102 return $field + array(103 'type' => 'select', 'options' =>104 array(105 'default' => sprintf(__('Default (%s)', 'linkgenius'), $default ? __('Enabled', 'linkgenius') : __('Disabled', 'linkgenius')),106 '1' => __('Enabled', 'linkgenius'),107 '0' => __('Disabled', 'linkgenius')108 )109 );110 }111 };112 170 $fields = array( 113 171 array( … … 122 180 'desc' => __('Comma separated list of CSS classes', 'linkgenius') 123 181 ), 124 $ add_check_options(array(182 $this->add_check_options(array( 125 183 'name' => __('Open in New Tab', 'linkgenius'), 126 184 'id' => 'appearance_new_tab', 127 185 'desc' => __('Open the URL in a new tab when clicked. Done by adding target="_blank" tag.', 'linkgenius') 128 ) ),129 $ add_check_options(array(186 ), $for_settings), 187 $this->add_check_options(array( 130 188 'name' => __('Parameter Forwarding', 'linkgenius'), 131 189 'id' => 'appearance_parameter_forwarding' 132 ) ),133 $ add_check_options(array(190 ), $for_settings), 191 $this->add_check_options(array( 134 192 'name' => __('Sponsored Attribute', 'linkgenius'), 135 193 'id' => 'appearance_sponsored_attribute' 136 ) ),137 $ add_check_options(array(194 ), $for_settings), 195 $this->add_check_options(array( 138 196 'name' => __('Nofollow Attribute', 'linkgenius'), 139 197 'id' => 'appearance_nofollow_attribute' 140 ) )198 ), $for_settings) 141 199 ); 142 200 $rel_tags = array( … … 271 329 $fields = array(); 272 330 if($for_settings) { 331 $server_side_condition = array( 332 'data-conditional-id' => 'tracking_method', 333 'data-conditional-value' => 'server', 334 ); 335 $required_server_side_conditions = array_merge($server_side_condition, array( 336 'required' => 'required' 337 )); 338 $fields = array_merge($fields, array( 339 array( 340 'id' => 'tracking_configuration_title', 341 'type' => 'title', 342 'name' => __('Tracking Configuration', 'linkgenius'), 343 'desc' => __('Tracking api description', 'linkgenius'), 344 ), 345 array( 346 'name' => __('Tracking Method', 'linkgenius'), 347 'id' => 'tracking_method', 348 'type' => 'radio', 349 'options' => array( 350 'client' => __('Javascript', 'linkgenius'), 351 'server' => __('Serverside Api', 'linkgenius') 352 ), 353 'default' => Settings::$DEFAULTS['tracking']['tracking_method']??'client', 354 'desc' => __('Javascript tracking works best if you have Google Analytics configured on your website and you place all links via shortcodes or blocks. It does not allow for target_url tracking (only cloacked_url) and might miss category parameter on manually placed links. Serverside allows you to include these parameters and allows you to track your links when placed on external source (i.e. social media). Furthermore, it does not require GA to be configured on you website. However, it is slightly harder to config and increases traffic from server.', 'linkgenius') 355 ), 356 array( 357 'name' => __('GA4 Measurement ID', 'linkgenius'), 358 'id' => 'tracking_measurement_id', 359 'type' => 'text', 360 'attributes' => $required_server_side_conditions 361 ), 362 array( 363 'name' => __('GA4 Api Secret', 'linkgenius'), 364 'id' => 'tracking_api_secret', 365 'type' => 'text', 366 'attributes' => $required_server_side_conditions 367 ), 368 array( 369 'name' => __('Linkgenius Cookie Fallback', 'linkgenius'), 370 'id' => 'tracking_cookie_fallback', 371 'type' => 'checkbox', 372 'attributes' => $server_side_condition, 373 'sanitization_cb' => [$this, 'sanitize_checkbox'], 374 'description' => __('<p>When using serverside tracking, LinkGenius tries to send the userid to google analytics by reading the _ga cookie. However, if this cookie does not exist, either because Google Analytics is not used on your website or because the user has not vistited any non-redirecting pages, LinkGenius might use an own identifier to detect unique/returning visitors. This places a cookie with the id with a lifetime of 90 days.</p>' 375 , 'linkgenius'), 376 'default' => Settings::$DEFAULTS['tracking']['tracking_cookie_fallback']??true 377 ), 378 array( 379 'name' => __('Don\'t track bots', 'linkgenius'), 380 'id' => 'tracking_no_bots', 381 'type' => 'checkbox', 382 'attributes' => $server_side_condition, 383 'sanitization_cb' => [$this, 'sanitize_checkbox'], 384 'default' => Settings::$DEFAULTS['tracking']['tracking_no_bots']??true 385 ) 386 )); 273 387 $fields[] = array( 274 388 'id' => 'tracking_defaults_title', … … 278 392 ); 279 393 } 394 else { 395 $fields[] = array( 396 'id' => 'tracking_title', 397 'type' => 'title', 398 'desc' => __('Intro text GA tracking', 'linkgenius') 399 ); 400 } 280 401 $fields = array_merge($fields, array( 281 array(402 $this->add_check_options(array( 282 403 'name' => __('Enabled', 'linkgenius'), 283 'id' => 'tracking_enabled', 284 'type' => 'checkbox', 285 'default' => Settings::$DEFAULTS['tracking']['tracking_enabled']??'1' 286 ), 404 'id' => 'tracking_enabled' 405 ), $for_settings), 287 406 array( 288 407 'name' => __('Event Name', 'linkgenius'), … … 295 414 'id' => 'tracking_parameters', 296 415 'type' => 'textarea_small', 297 'default' => Settings::$DEFAULTS['tracking']['tracking_parameters']??"" 416 'default' => Settings::$DEFAULTS['tracking']['tracking_parameters']??"", 417 'desc' => __('You can use the variables %cloaked_url%, %target_url%, %categories%, %tags% and %referrer%', 'linkgenius') 298 418 ) 299 419 )); 300 420 return $fields; 301 421 } 422 423 public function get_autolink_fields($for_settings = false) { 424 $fields = array(); 425 if($for_settings) 426 return $fields; 427 $fields = array_merge($fields, array( 428 array( 429 'id' => 'autolink_title', 430 'type' => 'title', 431 'desc' => __('Intro text autolink', 'linkgenius') 432 ), 433 array( 434 'name' => __('Order', 'linkgenius'), 435 'id' => 'autolink_order', 436 'type' => 'text_small', 437 'attributes' => array ( 438 'required' => 'required', 439 'type' => 'number', 440 'data-default' => '10' 441 ), 442 "default" => "10", 443 'desc' => __('A lower order means earlier execution when dealing with conflicting keywords or urls', 'linkgenius') 444 ), 445 array( 446 'name' => __('Keywords', 'linkgenius'), 447 'id' => 'autolink_keywords', 448 'type' => 'textarea_small', 449 'desc' => __('Enter keywords that will automatically create a link to this LinkGenius link if they occur in the page or post content. One keyword per line, case-insensitive.', 'linkgenius') 450 ), 451 array( 452 'name' => __('URLs', 'linkgenius'), 453 'id' => 'autolink_urls', 454 'type' => 'textarea_small', 455 'desc' => __('Enter URLs that will automatically be replaced with this LinkGenius link. One url per line.', 'linkgenius') 456 ), 457 )); 458 return $fields; 459 } 460 461 public function get_expiration_fields($for_settings = false) { 462 $fields = []; 463 if($for_settings) { 464 return $fields; 465 } 466 $fields = array_merge($fields, array( 467 array( 468 'id' => 'expiration_title', 469 'type' => 'title', 470 'desc' => __('Intro text expiration', 'linkgenius') 471 ), 472 array( 473 'name' => __('Expiration Date', 'linkgenius'), 474 'id' => 'expiration_date', 475 'type' => 'text_datetime_timestamp', 476 'desc' => __('Date after which link expires. (optional)', 'linkgenius') 477 ), 478 array( 479 'name' => __('Expiration Clicks', 'linkgenius'), 480 'id' => 'expiration_clicks', 481 'type' => 'text_small', 482 'attributes' => array( 483 'type' => 'number', 484 'pattern' => '\d*', 485 ), 486 'sanitization_cb' => 'absint', 487 'escape_cb' => 'absint', 488 'desc' => __('Number of clicks after which the link expires. (optional)', 'linkgenius') 489 ), 490 array( 491 'name' => __('Current Clicks', 'cmb2'), 492 'id' => 'clicks', 493 'type' => 'clicks', 494 'default' => 0 495 ), 496 array( 497 'name' => __('Redirect After Expiry', 'linkgenius'), 498 'id' => 'redirect_after_expiry', 499 'type' => 'text_url', 500 'desc' => __('The url to redirect to after link expired (used only if date or clicks are set).', 'linkgenius'), 501 'default' => '/', 502 'attributes' => array( 503 'required' => 'required' 504 ) 505 ), 506 )); 507 return $fields; 508 } 302 509 } 510 511 add_action( 'cmb2_render_clicks', [new Metabox(), 'cmb2_render_callback_for_clicks'], 10, 5 ); -
linkgenius/trunk/includes/Redirect.php
r2967528 r2969592 18 18 if ($post && 'linkgenius_link' === $post->post_type) { 19 19 $data = get_post_meta($post->ID); 20 $data = apply_filters('linkgenius_links/before_redirect', $data); 21 if ($data === null) { 20 if ($data === false) { 22 21 return false; 23 22 } 24 23 $data = array_map(fn($v) => $v[0], $data); 25 $data = apply_filters("linkgenius_before_redirect", $data );24 $data = apply_filters("linkgenius_before_redirect", $data, $post->ID); 26 25 if(empty($data['general_target_url'])) { 27 26 return false; … … 60 59 wp_redirect( $target_url, intval($redirect_type)); 61 60 flush(); 62 do_action("linkgenius_after_redirect", $data );61 do_action("linkgenius_after_redirect", $data, $post->ID); 63 62 exit(); 64 63 } -
linkgenius/trunk/includes/Settings.php
r2967528 r2969592 32 32 } 33 33 34 // Highlight the Settings submenu item when on the Settings2 page35 if ( 34 // Highlight the Settings submenu item when on one of the settings pages 35 if ( // Is this a settings page 36 36 isset($_GET['page']) && str_starts_with($_GET['page'], self::OPTIONS_PREFIX) 37 37 && isset($_GET['post_type']) && $_GET['post_type'] === CPT::TYPE_LINK … … 43 43 } 44 44 } 45 } 45 // enqueue the js for conditinals also 46 add_action('admin_enqueue_scripts', [$this, 'enqueue_scripts']); 47 } 48 } 49 50 public function enqueue_scripts() 51 { 52 wp_enqueue_script('cmb2-conditionals', plugins_url('../vendor/jcchavezs/cmb2-conditionals/cmb2-conditionals.js', __FILE__), array('jquery'), '1.0.2', true); 46 53 } 47 54 … … 121 128 { 122 129 static $instance = null; 123 if($instance == null) 124 $instance = new self(); 130 if($instance == null) { 131 $instance = new static(); 132 } 125 133 return $instance; 126 134 } … … 146 154 * - 'disclosure_statement': The disclosure statement to use. 147 155 * - 'tracking': An array of tracking configuration options. 156 * - 'tracking_enabled': Whether or not tracking is enabled. 157 * - 'tracking_name': The name of the tracking cookie. 158 * - 'tracking_parameters': The parameters to use for tracking. 148 159 */ 149 160 public function get_settings() … … 171 182 172 183 public function maybe_flush_rewrite_rules($old_val, $new_val) { 173 if( $old_val['general_prefix'] ?? ""!== $new_val['general_prefix']) {184 if(($old_val['general_prefix'] ?? "") !== $new_val['general_prefix']) { 174 185 add_option('linkgenius_should_flush', true); 175 186 } 176 var_dump($old_val);177 187 } 178 188 } … … 180 190 'general' => [ 181 191 'general_prefix' => "out", 192 'general_role' => 'manage_options', 182 193 'general_redirect_type' => '301', 183 194 'general_uncloak' => false, … … 199 210 ], 200 211 'tracking' => [ 201 'tracking_enabled' => ' 1',212 'tracking_enabled' => '0', 202 213 'tracking_name' => 'linkgenius', 203 214 'tracking_parameters' => "'category': '%category%'\r\n'url':'%url%'" -
linkgenius/trunk/includes/Shortcode.php
r2967528 r2969592 3 3 4 4 class Shortcode { 5 private $has_tooltip = false;6 5 function __construct() 7 6 { … … 9 8 add_shortcode('linkgenius-link', array($this, 'linkgenius_link_shortcode')); 10 9 add_shortcode('linkgenius-list', array($this, 'linkgenius_list_shortcode')); 11 add_action("wp_enqueue_scripts", array($this, "maybe_enqueue_styles"));12 }13 14 function maybe_enqueue_styles() {15 if($this->has_tooltip) {16 wp_enqueue_style('linkgenius-tooltip', plugin_dir_url(__FILE__).'../assets/css/tooltip.css');17 }18 10 } 19 11 … … 24 16 25 17 $link_id = intval($atts['id']); 26 27 // Retrieve all metadata for the link 28 $link_metadata = get_post_meta($link_id, ''); 29 if($link_metadata === null || !isset($link_metadata['general_target_url'][0])) { 30 return "Link not found"; 31 } 32 33 $link_metadata = array_map(fn($v) => $v[0], $link_metadata); 34 $link_metadata = apply_filters('linkgenius_shortcode_link_metadata', $link_metadata, $link_id); 35 36 // Retrieve global settings 37 $settings = Settings::instance()->get_settings(); 38 $is_enabled = fn($key) => ($link_metadata[$key] === 'default' ? ($settings[$key]) : $link_metadata[$key] === '1'); 39 40 41 $attributes = array( 42 "href" => esc_url($is_enabled('general_uncloak') ? $link_metadata['general_target_url'] : get_permalink($link_id)) 43 ); 44 if($is_enabled('appearance_new_tab')) { 45 $attributes['target'] = "_blank"; 46 } 47 $rel_tags = trim($settings['appearance_rel_tags']); 48 if($is_enabled('appearance_sponsored_attribute')) { 49 $rel_tags .= " sponsored"; 50 } 51 if($is_enabled('appearance_nofollow_attribute')) { 52 $rel_tags .= " nofollow"; 53 } 54 $rel_tags .= ' '.trim($link_metadata['appearance_rel_tags']??""); 55 $rel_tags = esc_attr(trim($rel_tags)); 56 if(!empty($rel_tags)) { 57 $attributes['rel'] = $rel_tags; 58 } 59 $classes = esc_attr(trim(trim($settings['appearance_css_classes']).' '.trim($link_metadata['appearance_css_classes']??""))); 60 if(!empty($classes)) { 61 $attributes['class'] = $classes; 62 } 63 $attributes = array_merge($attributes, $link_metadata['atts']??[]); 64 65 if ($link_metadata['disclosure_type'] === 'tooltip') { 66 $attributes['class'] = trim(($attributes['classes'] ?? '')." linkgenius-tooltip"); 67 $content .= "" 68 ."<span class='linkgenius-tooltiptext'>" 69 . ($link_metadata['disclosure_tooltip'] ?? $settings['disclosure_tooltip']) 70 ."</span>"; 71 $this->has_tooltip = true; 72 } 73 74 // Output the link 75 $output = array_reduce(array_keys($attributes), fn($carry, $k) => $carry . " ".$k . "='". $attributes[$k]."'", "<a") 76 .">".$content."</a>"; 77 78 if($link_metadata['disclosure_type'] === 'linktext') { 79 $output .= $link_metadata['disclosure_text_after'] ?? $settings['disclosure_text_after']; 80 } 81 else if($link_metadata['disclosure_type'] === 'content_statement') { 82 Discloser::instance()->add_disclosure(); 83 } 84 return $output; 18 return LinkBuilder::instance()->get_link($link_id, $content) ?? "Link not found"; 85 19 } 86 20 … … 138 72 foreach($links as $link) { 139 73 $output .= $prelink. 140 $this->linkgenius_link_shortcode(array('id' => $link->ID), $link->post_title)74 LinkBuilder::instance()->get_link($link->ID, $link->post_title) 141 75 .$postlink; 142 76 } … … 145 79 } 146 80 else { 147 $output = implode($content, array_map(fn($l) => $this->linkgenius_link_shortcode(array('id' => $l->ID), $l->post_title), $links));81 $output = implode($content, array_map(fn($l) => LinkBuilder::instance()->get_link($l->ID, $l->post_title), $links)); 148 82 } 149 83 return $output; -
linkgenius/trunk/languages/linkgenius-fallback.po
r2967528 r2969592 34 34 msgstr "" 35 35 36 #: includes/CPT.php:2 4836 #: includes/CPT.php:280 37 37 msgid "Link Appearance" 38 38 msgstr "" 39 39 40 #: includes/CPT.php:2 6240 #: includes/CPT.php:294 41 41 msgid "Link Disclosure" 42 42 msgstr "" 43 43 44 #: includes/CPT.php: 27644 #: includes/CPT.php:308 45 45 msgid "Auto Link (Pro)" 46 46 msgstr "" 47 47 48 #: includes/ CPT.php:28648 #: includes/Metabox.php:434 49 49 msgid "Intro text autolink" 50 50 msgstr "Automatically create links to this LinkGenius link on if Keywords or URLs occur in the page or post content. <strong><a href=\"https://all-affiliates.com/linkgenius/pro?utm_source=plugin&utm_medium=editor&utm_campain=autolink\" target=\"_blank\">Get LinkGenius Pro</a></strong> to unlock this feature." 51 51 52 #: includes/CPT.php:290 52 #: includes/Metabox.php:101 53 #: includes/Metabox.php:437 53 54 #: assets/app/src/linkgenius-taxonomy-selector.js:72 54 #: assets/js/editor .js:75755 #: assets/js/editor/editor.js:2 55 56 msgid "Order" 56 57 msgstr "" 57 58 58 #: includes/CPT.php:298 59 msgid "A higher order means earlier executing when dealing with conflicing keywords or urls" 60 msgstr "" 61 62 #: includes/CPT.php:302 59 #: includes/Metabox.php:449 63 60 msgid "Keywords" 64 61 msgstr "" 65 62 66 #: includes/ CPT.php:30563 #: includes/Metabox.php:452 67 64 msgid "Enter keywords that will automatically create a link to this LinkGenius link if they occur in the page or post content. One keyword per line, case-insensitive." 68 65 msgstr "" 69 66 70 #: includes/ CPT.php:30967 #: includes/Metabox.php:455 71 68 msgid "URLs" 72 69 msgstr "" 73 70 74 #: includes/ CPT.php:31271 #: includes/Metabox.php:458 75 72 msgid "Enter URLs that will automatically be replaced with this LinkGenius link. One url per line." 76 73 msgstr "" 77 74 78 #: includes/ CPT.php:32975 #: includes/Metabox.php:473 79 76 msgid "Intro text expiration" 80 77 msgstr "Make this link expire after a certain date or number of clicks. <strong><a href=\"https://all-affiliates.com/linkgenius/pro?utm_source=plugin&utm_medium=editor&utm_campain=expiration\" target=\"_blank\">Get LinkGenius Pro</a></strong> to unlock this feature." 81 78 82 #: includes/ CPT.php:33679 #: includes/Metabox.php:479 83 80 msgid "Date after which link expires. (optional)" 84 81 msgstr "" 85 82 86 #: includes/ CPT.php:34083 #: includes/Metabox.php:482 87 84 msgid "Expiration Clicks" 88 85 msgstr "" 89 86 90 #: includes/ CPT.php:34987 #: includes/Metabox.php:491 91 88 msgid "Number of clicks after which the link expires. (optional)" 92 89 msgstr "" 93 90 94 #: includes/ CPT.php:35391 #: includes/Metabox.php:500 95 92 msgid "Redirect After Expiry" 96 93 msgstr "" 97 94 98 #: includes/ CPT.php:35695 #: includes/Metabox.php:503 99 96 msgid "The url to redirect to after link expired (used only if date or clicks are set)." 100 97 msgstr "" 101 98 102 #: includes/CPT.php:3 6799 #: includes/CPT.php:338 103 100 msgid "Geolocation Redirects (Pro)" 104 101 msgstr "" 105 102 106 #: includes/CPT.php:3 77103 #: includes/CPT.php:348 107 104 msgid "Intro text Geolocation" 108 105 msgstr "Redirect to different URLs based on the visitor's country. <strong><a href=\"https://all-affiliates.com/linkgenius/pro?utm_source=plugin&utm_medium=editor&utm_campain=geolocation\" target=\"_blank\">Get LinkGenius Pro</a></strong> to unlock this feature." 109 106 110 #: includes/CPT.php:383 111 msgid "Geolocation Redirects" 112 msgstr "" 113 114 #: includes/CPT.php:386 107 #: includes/CPT.php:357 108 #: includes/CPT.php:399 115 109 msgid "Redirect {#}" 116 110 msgstr "" 117 111 118 #: includes/CPT.php:387 112 #: includes/CPT.php:358 113 #: includes/CPT.php:400 119 114 msgid "Add Another Redirect" 120 115 msgstr "" 121 116 122 #: includes/CPT.php:388 117 #: includes/CPT.php:359 118 #: includes/CPT.php:401 123 119 msgid "Remove Redirect" 124 120 msgstr "" 125 121 126 #: includes/CPT.php:3 93122 #: includes/CPT.php:364 127 123 msgid "Country Code" 128 124 msgstr "" 129 125 130 #: includes/CPT.php:399 131 msgid "Affiliate URL" 132 msgstr "" 133 134 #: includes/CPT.php:408 126 #: includes/CPT.php:422 135 127 msgid "GA Link Tracking (Pro)" 136 128 msgstr "" 137 129 138 #: includes/Editor.php:84 139 msgid "Missing required post data" 140 msgstr "" 141 142 #: includes/Metabox.php:12 130 #: includes/Metabox.php:74 143 131 msgid "301 Permanent Redirect" 144 132 msgstr "" 145 133 146 #: includes/Metabox.php: 13134 #: includes/Metabox.php:75 147 135 msgid "302 Temporary Redirect" 148 136 msgstr "" 149 137 150 #: includes/Metabox.php: 14138 #: includes/Metabox.php:76 151 139 msgid "307 Temporary Redirect" 152 140 msgstr "" 153 141 154 #: includes/Metabox.php: 17155 #: includes/Metabox.php:7 8156 #: includes/Metabox.php:1 04157 #: includes/Metabox.php: 170142 #: includes/Metabox.php:61 143 #: includes/Metabox.php:79 144 #: includes/Metabox.php:155 145 #: includes/Metabox.php:253 158 146 msgid "Default (%s)" 159 147 msgstr "" 160 148 161 #: includes/Metabox.php:26 162 msgid "The url to link to in your content." 163 msgstr "" 164 165 #: includes/Metabox.php:30 149 #: includes/Metabox.php:92 166 150 msgid "Target URL*" 167 151 msgstr "" 168 152 169 #: includes/Metabox.php: 36153 #: includes/Metabox.php:98 170 154 msgid "The target (affiliate) link." 171 155 msgstr "" 172 156 173 #: includes/Metabox.php:39 174 msgid "Order*" 175 msgstr "" 176 177 #: includes/Metabox.php:47 157 #: includes/Metabox.php:110 178 158 msgid "The order for the link, used when displaying all links of a tag or category" 179 159 msgstr "" 180 160 181 #: includes/Metabox.php: 53161 #: includes/Metabox.php:116 182 162 msgid "Link Prefix" 183 163 msgstr "" 184 164 185 #: includes/Metabox.php: 57165 #: includes/Metabox.php:120 186 166 msgid "The prefix for your link, for example <i>go, recommends, out, link, affiliate</i>. The link will look like <b>%1$sprefix/slug</b>." 187 167 msgstr "" 188 168 169 #: includes/Metabox.php:138 170 msgid "Defaults" 171 msgstr "" 172 173 #: includes/Metabox.php:140 174 msgid "Intro default general setings" 175 msgstr "" 176 177 #: includes/Metabox.php:145 178 msgid "Redirect Type" 179 msgstr "" 180 189 181 #: includes/Metabox.php:61 190 msgid "Defaults" 191 msgstr "" 192 182 #: includes/Metabox.php:62 183 #: includes/Metabox.php:155 184 #: includes/Metabox.php:156 185 #: includes/Metabox.php:406 186 msgid "Enabled" 187 msgstr "" 188 189 #: includes/Metabox.php:61 193 190 #: includes/Metabox.php:63 194 msgid "Intro default general setings" 195 msgstr "" 196 197 #: includes/Metabox.php:68 198 msgid "Redirect Type" 199 msgstr "" 200 201 #: includes/Metabox.php:78 202 #: includes/Metabox.php:79 203 #: includes/Metabox.php:104 204 #: includes/Metabox.php:105 205 #: includes/Metabox.php:248 206 msgid "Enabled" 207 msgstr "" 208 209 #: includes/Metabox.php:78 210 #: includes/Metabox.php:80 211 #: includes/Metabox.php:104 212 #: includes/Metabox.php:106 191 #: includes/Metabox.php:155 192 #: includes/Metabox.php:157 213 193 msgid "Disabled" 214 194 msgstr "" 215 195 216 #: includes/Metabox.php: 84196 #: includes/Metabox.php:161 217 197 msgid "No Cloaking" 218 198 msgstr "" 219 199 220 #: includes/Metabox.php: 86200 #: includes/Metabox.php:163 221 201 msgid "When checked affiliate url of LinkGenius Links will be outputted in content instead of the slug." 222 202 msgstr "" 223 203 224 #: includes/Metabox.php: 115204 #: includes/Metabox.php:213 225 205 msgid "Default Link appearance" 226 206 msgstr "" 227 207 228 #: includes/Metabox.php:1 16208 #: includes/Metabox.php:174 229 209 msgid "Intro text appearance" 230 210 msgstr "Determine how the link will appear in your content." 231 211 232 #: includes/Metabox.php:1 19212 #: includes/Metabox.php:177 233 213 msgid "Global CSS Classes" 234 214 msgstr "" 235 215 236 #: includes/Metabox.php:1 19216 #: includes/Metabox.php:177 237 217 msgid "CSS Classes" 238 218 msgstr "" 239 219 240 #: includes/Metabox.php:1 22220 #: includes/Metabox.php:180 241 221 msgid "Comma separated list of CSS classes" 242 222 msgstr "" 243 223 244 #: includes/Metabox.php:1 25224 #: includes/Metabox.php:183 245 225 msgid "Open in New Tab" 246 226 msgstr "" 247 227 248 #: includes/Metabox.php:1 27228 #: includes/Metabox.php:185 249 229 msgid "Open the URL in a new tab when clicked. Done by adding target=\"_blank\" tag." 250 230 msgstr "" 251 231 252 #: includes/Metabox.php:1 30232 #: includes/Metabox.php:188 253 233 msgid "Parameter Forwarding" 254 234 msgstr "" 255 235 256 #: includes/Metabox.php:1 34236 #: includes/Metabox.php:192 257 237 msgid "Sponsored Attribute" 258 238 msgstr "" 259 239 260 #: includes/Metabox.php:1 38240 #: includes/Metabox.php:196 261 241 msgid "Nofollow Attribute" 262 242 msgstr "" 263 243 264 #: includes/Metabox.php: 142244 #: includes/Metabox.php:201 265 245 msgid "Global Additional Rel Tags" 266 246 msgstr "" 267 247 268 #: includes/Metabox.php: 142248 #: includes/Metabox.php:201 269 249 msgid "Additional Rel Tags" 270 250 msgstr "" 271 251 272 #: includes/Metabox.php: 145252 #: includes/Metabox.php:204 273 253 msgid "Comma separated list of additional rel tags" 274 254 msgstr "" 275 255 276 #: includes/Metabox.php: 155256 #: includes/Metabox.php:228 277 257 msgid "None" 278 258 msgstr "" 279 259 280 #: includes/Metabox.php: 156260 #: includes/Metabox.php:229 281 261 msgid "Tooltip" 282 262 msgstr "" 283 263 284 #: includes/Metabox.php: 157285 #: includes/Metabox.php: 187286 #: includes/Metabox.php: 224264 #: includes/Metabox.php:230 265 #: includes/Metabox.php:270 266 #: includes/Metabox.php:312 287 267 msgid "Text After Link" 288 268 msgstr "" 289 269 290 #: includes/Metabox.php: 158270 #: includes/Metabox.php:231 291 271 msgid "Content Statement" 292 272 msgstr "" 293 273 294 #: includes/Metabox.php: 163274 #: includes/Metabox.php:236 295 275 msgid "Intro text disclosure" 296 276 msgstr "Show an (affiliate link) disclosure statement when this link appears in your content." 297 277 298 #: includes/Metabox.php: 166278 #: includes/Metabox.php:249 299 279 msgid "Disclosure Type" 300 280 msgstr "" 301 281 302 #: includes/Metabox.php: 180282 #: includes/Metabox.php:263 303 283 msgid "Default Disclosure Tooltip" 304 284 msgstr "" 305 285 306 #: includes/Metabox.php: 183286 #: includes/Metabox.php:266 307 287 msgid "default_tooltip_desc" 308 288 msgstr "" 309 289 310 #: includes/Metabox.php: 194290 #: includes/Metabox.php:282 311 291 msgid "Content Disclosure Location" 312 292 msgstr "" 313 293 314 #: includes/Metabox.php: 198294 #: includes/Metabox.php:286 315 295 msgid "End of Post" 316 296 msgstr "" 317 297 318 #: includes/Metabox.php: 199298 #: includes/Metabox.php:287 319 299 msgid "Beginning of Post" 320 300 msgstr "" 321 301 322 #: includes/Metabox.php:2 00302 #: includes/Metabox.php:288 323 303 msgid "Custom (Via Shortcode or Action)" 324 304 msgstr "" 325 305 326 #: includes/Metabox.php:2 05306 #: includes/Metabox.php:293 327 307 msgid "Content Disclosure Text" 328 308 msgstr "" 329 309 330 #: includes/Metabox.php: 214310 #: includes/Metabox.php:302 331 311 msgid "Disclosure Text" 332 312 msgstr "" 333 313 334 #: includes/Metabox.php: 218335 #: includes/Metabox.php: 229314 #: includes/Metabox.php:306 315 #: includes/Metabox.php:317 336 316 msgid "Default: %s" 337 317 msgstr "" 338 318 339 #: includes/Metabox.php: 227319 #: includes/Metabox.php:315 340 320 msgid "after_link_text_desc" 341 321 msgstr "" 342 322 343 #: includes/Metabox.php: 245323 #: includes/Metabox.php:401 344 324 msgid "Intro text GA tracking" 345 325 msgstr "Track clicks with Google Analytics. <strong><a href=\"https://all-affiliates.com/linkgenius/pro?utm_source=plugin&utm_medium=editor&utm_campain=tracking\" target=\"_blank\">Get LinkGenius Pro</a></strong> to unlock this feature." 346 326 347 #: includes/Metabox.php: 253327 #: includes/Metabox.php:410 348 328 msgid "Event Name" 349 329 msgstr "" 350 330 351 #: includes/Metabox.php: 258331 #: includes/Metabox.php:416 352 332 msgid "Event Parameters" 353 333 msgstr "" 354 334 355 #: includes/Settings.php:6 0356 #: includes/Settings.php:6 1335 #: includes/Settings.php:67 336 #: includes/Settings.php:68 357 337 msgid "Settings" 358 338 msgstr "" 359 339 360 #: includes/Settings.php: 65340 #: includes/Settings.php:72 361 341 msgid "General" 362 342 msgstr "" 363 343 364 #: includes/Settings.php:80 344 #: includes/Settings.php:87 345 #: includes/Settings.php:93 365 346 msgid "Appearance" 366 347 msgstr "" 367 348 368 #: includes/Settings.php:86 369 msgid "appearance" 370 msgstr "" 371 372 #: includes/Settings.php:102 373 #: includes/Settings.php:108 349 #: includes/Settings.php:109 350 #: includes/Settings.php:115 374 351 msgid "Disclosure" 375 352 msgstr "" 376 353 377 #: includes/Settings.php: 124378 msgid " Link Tracking"379 msgstr "" 380 381 #: includes/Settings.php: 130382 msgid " Tracking"354 #: includes/Settings.php:206 355 msgid "Affiliate Link" 356 msgstr "" 357 358 #: includes/Settings.php:207 359 msgid " (Affiliate Link)" 383 360 msgstr "" 384 361 385 362 #: includes/Settings.php:209 386 msgid "Affiliate Link"387 msgstr ""388 389 #: includes/Settings.php:210390 msgid " (Affiliate Link)"391 msgstr ""392 393 #: includes/Settings.php:212394 363 msgid "default_content_disclosure_text" 395 364 msgstr "This page contains affiliate links managed using the <a href=\"https://all-affiliates.com/linkgenius\" target=\"_blank\"/>LinkGenius</a> plugin. If you click through and purchase an item, I may earn a commission. See my terms of service for details." 396 365 397 #: includes/Shortcode.php: 103366 #: includes/Shortcode.php:59 398 367 msgid "You must specify a category or tag" 399 368 msgstr "" 400 369 401 370 #: assets/app/src/linkgenius-block.js:39 402 #: assets/js/editor .js:78371 #: assets/js/editor/editor.js:2 403 372 msgid "No LinkGenius Link Selected" 404 373 msgstr "" 405 374 406 #: assets/app/src/linkgenius-block.js:5 2407 #: assets/js/editor .js:91375 #: assets/app/src/linkgenius-block.js:51 376 #: assets/js/editor/editor.js:2 408 377 msgid "Edit LinkGenius Link" 409 378 msgstr "" 410 379 411 #: assets/app/src/linkgenius-block.js:5 2412 #: assets/js/editor .js:91380 #: assets/app/src/linkgenius-block.js:51 381 #: assets/js/editor/editor.js:2 413 382 msgid "Preview LinkGenius Link" 414 383 msgstr "" 415 384 385 #: assets/app/src/linkgenius-block.js:58 386 #: assets/app/src/linkgenius-link-format.js:19 387 #: assets/app/src/linkgenius-link-format.js:76 388 #: assets/js/editor/editor.js:2 389 msgid "LinkGenius Link" 390 msgstr "" 391 416 392 #: assets/app/src/linkgenius-block.js:59 417 #: assets/app/src/linkgenius-link-format.js:19 418 #: assets/js/editor.js:98 419 #: assets/js/editor.js:260 420 msgid "LinkGenius Link" 421 msgstr "" 422 423 #: assets/app/src/linkgenius-block.js:60 424 #: assets/js/editor.js:98 393 #: assets/js/editor/editor.js:2 425 394 msgid "Text" 426 395 msgstr "" 427 396 428 #: assets/app/src/linkgenius-block.js:6 4429 #: assets/js/editor .js:105397 #: assets/app/src/linkgenius-block.js:63 398 #: assets/js/editor/editor.js:2 430 399 msgid "Link" 431 400 msgstr "" 432 401 433 402 #: assets/app/src/linkgenius-link-format.js:64 434 #: assets/js/editor.js:304 403 msgid "Remove LinkGenius Link" 404 msgstr "" 405 406 #: assets/app/src/linkgenius-link-selector.js:75 407 #: assets/js/editor/editor.js:2 408 msgid "No link selected" 409 msgstr "" 410 411 #: assets/app/src/linkgenius-link-selector.js:77 412 #: assets/js/editor/editor.js:2 413 msgid "Edit" 414 msgstr "" 415 416 #: assets/app/src/linkgenius-taxonomy-selector.js:47 417 #: assets/js/editor/editor.js:2 418 msgid "Edit LinkGenius List" 419 msgstr "" 420 421 #: assets/app/src/linkgenius-taxonomy-selector.js:47 422 #: assets/js/editor/editor.js:2 423 msgid "Preview LinkGenius List" 424 msgstr "" 425 426 #: assets/app/src/linkgenius-taxonomy-selector.js:60 427 #: assets/js/editor/editor.js:2 428 msgid "LinkGenius Category List" 429 msgstr "" 430 431 #: assets/app/src/linkgenius-taxonomy-selector.js:60 432 #: assets/js/editor/editor.js:2 433 msgid "LinkGenius Tag List" 434 msgstr "" 435 436 #: assets/app/src/linkgenius-taxonomy-selector.js:62 437 #: assets/js/editor/editor.js:2 438 msgid "Category" 439 msgstr "" 440 441 #: assets/app/src/linkgenius-taxonomy-selector.js:62 442 #: assets/js/editor/editor.js:2 443 msgid "Tag" 444 msgstr "" 445 446 #: assets/app/src/linkgenius-taxonomy-selector.js:70 447 #: assets/js/editor/editor.js:2 448 msgid "Sort By" 449 msgstr "" 450 451 #: assets/app/src/linkgenius-taxonomy-selector.js:73 452 #: assets/js/editor/editor.js:2 453 msgid "Title" 454 msgstr "" 455 456 #: assets/app/src/linkgenius-taxonomy-selector.js:77 457 #: assets/js/editor/editor.js:2 458 msgid "Template or seperator" 459 msgstr "" 460 461 #: assets/app/src/linkgenius-taxonomy-selector.js:78 462 #: assets/js/editor/editor.js:2 463 msgid "If {links}{link}{/links} is not found value is treated as seperator. For example, Set to \", \" to make links comma seperated" 464 msgstr "" 465 466 #: assets/app/src/linkgenius-taxonomy-selector.js:127 467 #: assets/js/editor/editor.js:2 468 msgid "No LinkGenius links found" 469 msgstr "" 470 471 #: includes/Metabox.php:81 472 msgid "Slug*" 473 msgstr "" 474 475 #: includes/CPT.php:323 476 msgid "Link Expiration (Pro)" 477 msgstr "" 478 479 #: includes/Metabox.php:476 480 msgid "Expiration Date" 481 msgstr "" 482 483 #: includes/CPT.php:354 484 msgid "Geolocation Rules" 485 msgstr "" 486 487 #: includes/CPT.php:370 488 #: includes/CPT.php:412 489 msgid "Target URL" 490 msgstr "" 491 492 #: includes/CPT.php:380 493 msgid "Useragent Rules (Pro)" 494 msgstr "" 495 496 #: includes/CPT.php:390 497 msgid "Intro text useragent" 498 msgstr "" 499 500 #: includes/CPT.php:396 501 msgid "Useragent Redirects" 502 msgstr "" 503 504 #: includes/CPT.php:406 505 msgid "User Agent Regex" 506 msgstr "" 507 508 #: includes/Metabox.php:88 509 msgid "<a href=\"#\" id=\"copy_url\">Copy</a><p>The url to link to in your content.</p>" 510 msgstr "" 511 512 #: includes/Metabox.php:124 513 msgid "Mimimum Role Linkmanagement" 514 msgstr "" 515 516 #: includes/Metabox.php:127 517 msgid "Administrator" 518 msgstr "" 519 520 #: includes/Metabox.php:128 521 msgid "Editor" 522 msgstr "" 523 524 #: includes/Metabox.php:129 525 msgid "Author" 526 msgstr "" 527 528 #: includes/Metabox.php:130 529 msgid "Contributor" 530 msgstr "" 531 532 #: includes/Metabox.php:131 533 msgid "Subscriber" 534 msgstr "" 535 536 #: includes/Metabox.php:134 537 msgid "The minimum role a user needs in order to create, edit or delete LinkGenius Links. The settings page will remain visible for administrators only." 538 msgstr "" 539 540 #: includes/Metabox.php:214 541 #: includes/Metabox.php:244 542 #: includes/Metabox.php:394 543 msgid "Default settings, can be overriden per individual link." 544 msgstr "" 545 546 #: includes/Metabox.php:243 547 msgid "Default disclosure settings" 548 msgstr "" 549 550 #: includes/Metabox.php:279 551 msgid "Content disclosure settings" 552 msgstr "" 553 554 #: includes/Metabox.php:345 555 msgid "Tracking Configuration" 556 msgstr "" 557 558 #: includes/Metabox.php:346 559 msgid "Tracking api description" 560 msgstr "" 561 562 #: includes/Metabox.php:349 563 msgid "Tracking Method" 564 msgstr "" 565 566 #: includes/Metabox.php:353 567 msgid "Javascript" 568 msgstr "" 569 570 #: includes/Metabox.php:354 571 msgid "Serverside Api" 572 msgstr "" 573 574 #: includes/Metabox.php:357 575 msgid "Javascript tracking works best if you have Google Analytics configured on your website and you place all links via shortcodes or blocks. It does not allow for target_url tracking (only cloacked_url) and might miss category parameter on manually placed links. Serverside allows you to include these parameters and allows you to track your links when placed on external source (i.e. social media). Furthermore, it does not require GA to be configured on you website. However, it is slightly harder to config and increases traffic from server." 576 msgstr "" 577 578 #: includes/Metabox.php:360 579 msgid "GA4 Measurement ID" 580 msgstr "" 581 582 #: includes/Metabox.php:366 583 msgid "GA4 Api Secret" 584 msgstr "" 585 586 #: includes/Metabox.php:372 587 msgid "Linkgenius Cookie Fallback" 588 msgstr "" 589 590 #: includes/Metabox.php:377 591 msgid "<p>When using serverside tracking, LinkGenius tries to send the userid to google analytics by reading the _ga cookie. However, if this cookie does not exist, either because Google Analytics is not used on your website or because the user has not vistited any non-redirecting pages, LinkGenius might use an own identifier to detect unique/returning visitors. This places a cookie with the id with a lifetime of 90 days.</p>" 592 msgstr "" 593 594 #: includes/Metabox.php:382 595 msgid "Don't track bots" 596 msgstr "" 597 598 #: includes/Metabox.php:393 599 msgid "Default GA tracking settings" 600 msgstr "" 601 602 #: includes/Metabox.php:420 603 msgid "You can use the variables %cloaked_url%, %target_url%, %categories%, %tags% and %referrer%" 604 msgstr "" 605 606 #: includes/Metabox.php:446 607 msgid "A lower order means earlier execution when dealing with conflicting keywords or urls" 608 msgstr "" 609 610 #: assets/js/editor/editor.js:2 435 611 msgid "Remove All Affiliate Link" 436 612 msgstr "" 437 613 438 #: assets/app/src/linkgenius-link-format.js:76 439 #: assets/js/editor.js:309 614 #: assets/js/editor/editor.js:2 440 615 msgid "All Affiliate Link" 441 616 msgstr "" 442 443 #: assets/app/src/linkgenius-link-selector.js:76444 #: assets/js/editor.js:465445 msgid "No link selected"446 msgstr ""447 448 #: assets/app/src/linkgenius-link-selector.js:78449 #: assets/js/editor.js:467450 msgid "Edit"451 msgstr ""452 453 #: assets/app/src/linkgenius-taxonomy-selector.js:47454 #: assets/js/editor.js:731455 msgid "Edit LinkGenius List"456 msgstr ""457 458 #: assets/app/src/linkgenius-taxonomy-selector.js:47459 #: assets/js/editor.js:731460 msgid "Preview LinkGenius List"461 msgstr ""462 463 #: assets/app/src/linkgenius-taxonomy-selector.js:60464 #: assets/js/editor.js:745465 msgid "LinkGenius Category List"466 msgstr ""467 468 #: assets/app/src/linkgenius-taxonomy-selector.js:60469 #: assets/js/editor.js:745470 msgid "LinkGenius Tag List"471 msgstr ""472 473 #: assets/app/src/linkgenius-taxonomy-selector.js:62474 #: assets/js/editor.js:745475 msgid "Category"476 msgstr ""477 478 #: assets/app/src/linkgenius-taxonomy-selector.js:62479 #: assets/js/editor.js:745480 msgid "Tag"481 msgstr ""482 483 #: assets/app/src/linkgenius-taxonomy-selector.js:70484 #: assets/js/editor.js:755485 msgid "Sort By"486 msgstr ""487 488 #: assets/app/src/linkgenius-taxonomy-selector.js:73489 #: assets/js/editor.js:760490 msgid "Title"491 msgstr ""492 493 #: assets/app/src/linkgenius-taxonomy-selector.js:77494 #: assets/js/editor.js:769495 msgid "Template or seperator"496 msgstr ""497 498 #: assets/app/src/linkgenius-taxonomy-selector.js:78499 #: assets/js/editor.js:771500 msgid "If {links}{link}{/links} is not found value is treated as seperator. For example, Set to \", \" to make links comma seperated"501 msgstr ""502 503 #: assets/app/src/linkgenius-taxonomy-selector.js:126504 msgid "No LinkGenius links found"505 msgstr ""506 507 #: assets/js/editor.js:867508 msgid "No LinkGenie links found"509 msgstr ""510 511 #: includes/Metabox.php:19512 msgid "Slug*"513 msgstr ""514 515 #: includes/CPT.php:319516 msgid "Link Expiration (Pro)"517 msgstr ""518 519 #: includes/CPT.php:333520 msgid "Expiration Date"521 msgstr "" -
linkgenius/trunk/languages/linkgenius.pot
r2967528 r2969592 3 3 msgid "" 4 4 msgstr "" 5 "Project-Id-Version: LinkGenius 1.0. 0\n"5 "Project-Id-Version: LinkGenius 1.0.1\n" 6 6 "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/linkgenius\n" 7 7 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" … … 10 10 "Content-Type: text/plain; charset=UTF-8\n" 11 11 "Content-Transfer-Encoding: 8bit\n" 12 "POT-Creation-Date: 2023-0 6-15T11:35:31+00:00\n"12 "POT-Creation-Date: 2023-09-21T07:55:51+00:00\n" 13 13 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 14 14 "X-Generator: WP-CLI 2.7.1\n" … … 35 35 msgstr "" 36 36 37 #: includes/CPT.php:2 4837 #: includes/CPT.php:280 38 38 msgid "Link Appearance" 39 39 msgstr "" 40 40 41 #: includes/CPT.php:2 6241 #: includes/CPT.php:294 42 42 msgid "Link Disclosure" 43 43 msgstr "" 44 44 45 #: includes/CPT.php: 27645 #: includes/CPT.php:308 46 46 msgid "Auto Link (Pro)" 47 47 msgstr "" 48 48 49 #: includes/CPT.php:286 49 #: includes/CPT.php:323 50 msgid "Link Expiration (Pro)" 51 msgstr "" 52 53 #: includes/CPT.php:338 54 msgid "Geolocation Redirects (Pro)" 55 msgstr "" 56 57 #: includes/CPT.php:348 58 msgid "Intro text Geolocation" 59 msgstr "" 60 61 #: includes/CPT.php:354 62 msgid "Geolocation Rules" 63 msgstr "" 64 65 #: includes/CPT.php:357 66 #: includes/CPT.php:399 67 msgid "Redirect {#}" 68 msgstr "" 69 70 #: includes/CPT.php:358 71 #: includes/CPT.php:400 72 msgid "Add Another Redirect" 73 msgstr "" 74 75 #: includes/CPT.php:359 76 #: includes/CPT.php:401 77 msgid "Remove Redirect" 78 msgstr "" 79 80 #: includes/CPT.php:364 81 msgid "Country Code" 82 msgstr "" 83 84 #: includes/CPT.php:370 85 #: includes/CPT.php:412 86 msgid "Target URL" 87 msgstr "" 88 89 #: includes/CPT.php:380 90 msgid "Useragent Rules (Pro)" 91 msgstr "" 92 93 #: includes/CPT.php:390 94 msgid "Intro text useragent" 95 msgstr "" 96 97 #: includes/CPT.php:396 98 msgid "Useragent Redirects" 99 msgstr "" 100 101 #: includes/CPT.php:406 102 msgid "User Agent Regex" 103 msgstr "" 104 105 #: includes/CPT.php:422 106 msgid "GA Link Tracking (Pro)" 107 msgstr "" 108 109 #: includes/Metabox.php:61 110 #: includes/Metabox.php:79 111 #: includes/Metabox.php:155 112 #: includes/Metabox.php:253 113 msgid "Default (%s)" 114 msgstr "" 115 116 #: includes/Metabox.php:61 117 #: includes/Metabox.php:62 118 #: includes/Metabox.php:155 119 #: includes/Metabox.php:156 120 #: includes/Metabox.php:406 121 msgid "Enabled" 122 msgstr "" 123 124 #: includes/Metabox.php:61 125 #: includes/Metabox.php:63 126 #: includes/Metabox.php:155 127 #: includes/Metabox.php:157 128 msgid "Disabled" 129 msgstr "" 130 131 #: includes/Metabox.php:74 132 msgid "301 Permanent Redirect" 133 msgstr "" 134 135 #: includes/Metabox.php:75 136 msgid "302 Temporary Redirect" 137 msgstr "" 138 139 #: includes/Metabox.php:76 140 msgid "307 Temporary Redirect" 141 msgstr "" 142 143 #: includes/Metabox.php:81 144 msgid "Slug*" 145 msgstr "" 146 147 #: includes/Metabox.php:88 148 msgid "<a href=\"#\" id=\"copy_url\">Copy</a><p>The url to link to in your content.</p>" 149 msgstr "" 150 151 #: includes/Metabox.php:92 152 msgid "Target URL*" 153 msgstr "" 154 155 #: includes/Metabox.php:98 156 msgid "The target (affiliate) link." 157 msgstr "" 158 159 #: includes/Metabox.php:101 160 #: includes/Metabox.php:437 161 #: assets/app/src/linkgenius-taxonomy-selector.js:72 162 #: assets/js/editor/editor.js:2 163 msgid "Order" 164 msgstr "" 165 166 #: includes/Metabox.php:110 167 msgid "The order for the link, used when displaying all links of a tag or category" 168 msgstr "" 169 170 #: includes/Metabox.php:116 171 msgid "Link Prefix" 172 msgstr "" 173 174 #: includes/Metabox.php:120 175 msgid "The prefix for your link, for example <i>go, recommends, out, link, affiliate</i>. The link will look like <b>%1$sprefix/slug</b>." 176 msgstr "" 177 178 #: includes/Metabox.php:124 179 msgid "Mimimum Role Linkmanagement" 180 msgstr "" 181 182 #: includes/Metabox.php:127 183 msgid "Administrator" 184 msgstr "" 185 186 #: includes/Metabox.php:128 187 msgid "Editor" 188 msgstr "" 189 190 #: includes/Metabox.php:129 191 msgid "Author" 192 msgstr "" 193 194 #: includes/Metabox.php:130 195 msgid "Contributor" 196 msgstr "" 197 198 #: includes/Metabox.php:131 199 msgid "Subscriber" 200 msgstr "" 201 202 #: includes/Metabox.php:134 203 msgid "The minimum role a user needs in order to create, edit or delete LinkGenius Links. The settings page will remain visible for administrators only." 204 msgstr "" 205 206 #: includes/Metabox.php:138 207 msgid "Defaults" 208 msgstr "" 209 210 #: includes/Metabox.php:140 211 msgid "Intro default general setings" 212 msgstr "" 213 214 #: includes/Metabox.php:145 215 msgid "Redirect Type" 216 msgstr "" 217 218 #: includes/Metabox.php:161 219 msgid "No Cloaking" 220 msgstr "" 221 222 #: includes/Metabox.php:163 223 msgid "When checked affiliate url of LinkGenius Links will be outputted in content instead of the slug." 224 msgstr "" 225 226 #: includes/Metabox.php:174 227 msgid "Intro text appearance" 228 msgstr "" 229 230 #: includes/Metabox.php:177 231 msgid "Global CSS Classes" 232 msgstr "" 233 234 #: includes/Metabox.php:177 235 msgid "CSS Classes" 236 msgstr "" 237 238 #: includes/Metabox.php:180 239 msgid "Comma separated list of CSS classes" 240 msgstr "" 241 242 #: includes/Metabox.php:183 243 msgid "Open in New Tab" 244 msgstr "" 245 246 #: includes/Metabox.php:185 247 msgid "Open the URL in a new tab when clicked. Done by adding target=\"_blank\" tag." 248 msgstr "" 249 250 #: includes/Metabox.php:188 251 msgid "Parameter Forwarding" 252 msgstr "" 253 254 #: includes/Metabox.php:192 255 msgid "Sponsored Attribute" 256 msgstr "" 257 258 #: includes/Metabox.php:196 259 msgid "Nofollow Attribute" 260 msgstr "" 261 262 #: includes/Metabox.php:201 263 msgid "Global Additional Rel Tags" 264 msgstr "" 265 266 #: includes/Metabox.php:201 267 msgid "Additional Rel Tags" 268 msgstr "" 269 270 #: includes/Metabox.php:204 271 msgid "Comma separated list of additional rel tags" 272 msgstr "" 273 274 #: includes/Metabox.php:213 275 msgid "Default Link appearance" 276 msgstr "" 277 278 #: includes/Metabox.php:214 279 #: includes/Metabox.php:244 280 #: includes/Metabox.php:394 281 msgid "Default settings, can be overriden per individual link." 282 msgstr "" 283 284 #: includes/Metabox.php:228 285 msgid "None" 286 msgstr "" 287 288 #: includes/Metabox.php:229 289 msgid "Tooltip" 290 msgstr "" 291 292 #: includes/Metabox.php:230 293 #: includes/Metabox.php:270 294 #: includes/Metabox.php:312 295 msgid "Text After Link" 296 msgstr "" 297 298 #: includes/Metabox.php:231 299 msgid "Content Statement" 300 msgstr "" 301 302 #: includes/Metabox.php:236 303 msgid "Intro text disclosure" 304 msgstr "" 305 306 #: includes/Metabox.php:243 307 msgid "Default disclosure settings" 308 msgstr "" 309 310 #: includes/Metabox.php:249 311 msgid "Disclosure Type" 312 msgstr "" 313 314 #: includes/Metabox.php:263 315 msgid "Default Disclosure Tooltip" 316 msgstr "" 317 318 #: includes/Metabox.php:266 319 msgid "default_tooltip_desc" 320 msgstr "" 321 322 #: includes/Metabox.php:279 323 msgid "Content disclosure settings" 324 msgstr "" 325 326 #: includes/Metabox.php:282 327 msgid "Content Disclosure Location" 328 msgstr "" 329 330 #: includes/Metabox.php:286 331 msgid "End of Post" 332 msgstr "" 333 334 #: includes/Metabox.php:287 335 msgid "Beginning of Post" 336 msgstr "" 337 338 #: includes/Metabox.php:288 339 msgid "Custom (Via Shortcode or Action)" 340 msgstr "" 341 342 #: includes/Metabox.php:293 343 msgid "Content Disclosure Text" 344 msgstr "" 345 346 #: includes/Metabox.php:302 347 msgid "Disclosure Text" 348 msgstr "" 349 350 #: includes/Metabox.php:306 351 #: includes/Metabox.php:317 352 msgid "Default: %s" 353 msgstr "" 354 355 #: includes/Metabox.php:315 356 msgid "after_link_text_desc" 357 msgstr "" 358 359 #: includes/Metabox.php:345 360 msgid "Tracking Configuration" 361 msgstr "" 362 363 #: includes/Metabox.php:346 364 msgid "Tracking api description" 365 msgstr "" 366 367 #: includes/Metabox.php:349 368 msgid "Tracking Method" 369 msgstr "" 370 371 #: includes/Metabox.php:353 372 msgid "Javascript" 373 msgstr "" 374 375 #: includes/Metabox.php:354 376 msgid "Serverside Api" 377 msgstr "" 378 379 #: includes/Metabox.php:357 380 msgid "Javascript tracking works best if you have Google Analytics configured on your website and you place all links via shortcodes or blocks. It does not allow for target_url tracking (only cloacked_url) and might miss category parameter on manually placed links. Serverside allows you to include these parameters and allows you to track your links when placed on external source (i.e. social media). Furthermore, it does not require GA to be configured on you website. However, it is slightly harder to config and increases traffic from server." 381 msgstr "" 382 383 #: includes/Metabox.php:360 384 msgid "GA4 Measurement ID" 385 msgstr "" 386 387 #: includes/Metabox.php:366 388 msgid "GA4 Api Secret" 389 msgstr "" 390 391 #: includes/Metabox.php:372 392 msgid "Linkgenius Cookie Fallback" 393 msgstr "" 394 395 #: includes/Metabox.php:377 396 msgid "<p>When using serverside tracking, LinkGenius tries to send the userid to google analytics by reading the _ga cookie. However, if this cookie does not exist, either because Google Analytics is not used on your website or because the user has not vistited any non-redirecting pages, LinkGenius might use an own identifier to detect unique/returning visitors. This places a cookie with the id with a lifetime of 90 days.</p>" 397 msgstr "" 398 399 #: includes/Metabox.php:382 400 msgid "Don't track bots" 401 msgstr "" 402 403 #: includes/Metabox.php:393 404 msgid "Default GA tracking settings" 405 msgstr "" 406 407 #: includes/Metabox.php:401 408 msgid "Intro text GA tracking" 409 msgstr "" 410 411 #: includes/Metabox.php:410 412 msgid "Event Name" 413 msgstr "" 414 415 #: includes/Metabox.php:416 416 msgid "Event Parameters" 417 msgstr "" 418 419 #: includes/Metabox.php:420 420 msgid "You can use the variables %cloaked_url%, %target_url%, %categories%, %tags% and %referrer%" 421 msgstr "" 422 423 #: includes/Metabox.php:434 50 424 msgid "Intro text autolink" 51 425 msgstr "" 52 426 53 #: includes/CPT.php:290 54 #: assets/app/src/linkgenius-taxonomy-selector.js:72 55 #: assets/js/editor.js:757 56 msgid "Order" 57 msgstr "" 58 59 #: includes/CPT.php:298 60 msgid "A higher order means earlier executing when dealing with conflicing keywords or urls" 61 msgstr "" 62 63 #: includes/CPT.php:302 427 #: includes/Metabox.php:446 428 msgid "A lower order means earlier execution when dealing with conflicting keywords or urls" 429 msgstr "" 430 431 #: includes/Metabox.php:449 64 432 msgid "Keywords" 65 433 msgstr "" 66 434 67 #: includes/ CPT.php:305435 #: includes/Metabox.php:452 68 436 msgid "Enter keywords that will automatically create a link to this LinkGenius link if they occur in the page or post content. One keyword per line, case-insensitive." 69 437 msgstr "" 70 438 71 #: includes/ CPT.php:309439 #: includes/Metabox.php:455 72 440 msgid "URLs" 73 441 msgstr "" 74 442 75 #: includes/ CPT.php:312443 #: includes/Metabox.php:458 76 444 msgid "Enter URLs that will automatically be replaced with this LinkGenius link. One url per line." 77 445 msgstr "" 78 446 79 #: includes/CPT.php:319 80 msgid "Link Expiration (Pro)" 81 msgstr "" 82 83 #: includes/CPT.php:329 447 #: includes/Metabox.php:473 84 448 msgid "Intro text expiration" 85 449 msgstr "" 86 450 87 #: includes/ CPT.php:333451 #: includes/Metabox.php:476 88 452 msgid "Expiration Date" 89 453 msgstr "" 90 454 91 #: includes/ CPT.php:336455 #: includes/Metabox.php:479 92 456 msgid "Date after which link expires. (optional)" 93 457 msgstr "" 94 458 95 #: includes/ CPT.php:340459 #: includes/Metabox.php:482 96 460 msgid "Expiration Clicks" 97 461 msgstr "" 98 462 99 #: includes/ CPT.php:349463 #: includes/Metabox.php:491 100 464 msgid "Number of clicks after which the link expires. (optional)" 101 465 msgstr "" 102 466 103 #: includes/ CPT.php:353467 #: includes/Metabox.php:500 104 468 msgid "Redirect After Expiry" 105 469 msgstr "" 106 470 107 #: includes/ CPT.php:356471 #: includes/Metabox.php:503 108 472 msgid "The url to redirect to after link expired (used only if date or clicks are set)." 109 473 msgstr "" 110 474 111 #: includes/CPT.php:367 112 msgid "Geolocation Redirects (Pro)" 113 msgstr "" 114 115 #: includes/CPT.php:377 116 msgid "Intro text Geolocation" 117 msgstr "" 118 119 #: includes/CPT.php:383 120 msgid "Geolocation Redirects" 121 msgstr "" 122 123 #: includes/CPT.php:386 124 msgid "Redirect {#}" 125 msgstr "" 126 127 #: includes/CPT.php:387 128 msgid "Add Another Redirect" 129 msgstr "" 130 131 #: includes/CPT.php:388 132 msgid "Remove Redirect" 133 msgstr "" 134 135 #: includes/CPT.php:393 136 msgid "Country Code" 137 msgstr "" 138 139 #: includes/CPT.php:399 140 msgid "Affiliate URL" 141 msgstr "" 142 143 #: includes/CPT.php:408 144 msgid "GA Link Tracking (Pro)" 145 msgstr "" 146 147 #: includes/Editor.php:84 148 msgid "Missing required post data" 149 msgstr "" 150 151 #: includes/Metabox.php:12 152 msgid "301 Permanent Redirect" 153 msgstr "" 154 155 #: includes/Metabox.php:13 156 msgid "302 Temporary Redirect" 157 msgstr "" 158 159 #: includes/Metabox.php:14 160 msgid "307 Temporary Redirect" 161 msgstr "" 162 163 #: includes/Metabox.php:17 164 #: includes/Metabox.php:78 165 #: includes/Metabox.php:104 166 #: includes/Metabox.php:170 167 msgid "Default (%s)" 168 msgstr "" 169 170 #: includes/Metabox.php:19 171 msgid "Slug*" 172 msgstr "" 173 174 #: includes/Metabox.php:26 175 msgid "The url to link to in your content." 176 msgstr "" 177 178 #: includes/Metabox.php:30 179 msgid "Target URL*" 180 msgstr "" 181 182 #: includes/Metabox.php:36 183 msgid "The target (affiliate) link." 184 msgstr "" 185 186 #: includes/Metabox.php:39 187 msgid "Order*" 188 msgstr "" 189 190 #: includes/Metabox.php:47 191 msgid "The order for the link, used when displaying all links of a tag or category" 192 msgstr "" 193 194 #: includes/Metabox.php:53 195 msgid "Link Prefix" 196 msgstr "" 197 198 #: includes/Metabox.php:57 199 msgid "The prefix for your link, for example <i>go, recommends, out, link, affiliate</i>. The link will look like <b>%1$sprefix/slug</b>." 200 msgstr "" 201 202 #: includes/Metabox.php:61 203 msgid "Defaults" 204 msgstr "" 205 206 #: includes/Metabox.php:63 207 msgid "Intro default general setings" 208 msgstr "" 209 210 #: includes/Metabox.php:68 211 msgid "Redirect Type" 212 msgstr "" 213 214 #: includes/Metabox.php:78 215 #: includes/Metabox.php:79 216 #: includes/Metabox.php:104 217 #: includes/Metabox.php:105 218 #: includes/Metabox.php:248 219 msgid "Enabled" 220 msgstr "" 221 222 #: includes/Metabox.php:78 223 #: includes/Metabox.php:80 224 #: includes/Metabox.php:104 225 #: includes/Metabox.php:106 226 msgid "Disabled" 227 msgstr "" 228 229 #: includes/Metabox.php:84 230 msgid "No Cloaking" 231 msgstr "" 232 233 #: includes/Metabox.php:86 234 msgid "When checked affiliate url of LinkGenius Links will be outputted in content instead of the slug." 235 msgstr "" 236 237 #: includes/Metabox.php:115 238 msgid "Default Link appearance" 239 msgstr "" 240 241 #: includes/Metabox.php:116 242 msgid "Intro text appearance" 243 msgstr "" 244 245 #: includes/Metabox.php:119 246 msgid "Global CSS Classes" 247 msgstr "" 248 249 #: includes/Metabox.php:119 250 msgid "CSS Classes" 251 msgstr "" 252 253 #: includes/Metabox.php:122 254 msgid "Comma separated list of CSS classes" 255 msgstr "" 256 257 #: includes/Metabox.php:125 258 msgid "Open in New Tab" 259 msgstr "" 260 261 #: includes/Metabox.php:127 262 msgid "Open the URL in a new tab when clicked. Done by adding target=\"_blank\" tag." 263 msgstr "" 264 265 #: includes/Metabox.php:130 266 msgid "Parameter Forwarding" 267 msgstr "" 268 269 #: includes/Metabox.php:134 270 msgid "Sponsored Attribute" 271 msgstr "" 272 273 #: includes/Metabox.php:138 274 msgid "Nofollow Attribute" 275 msgstr "" 276 277 #: includes/Metabox.php:142 278 msgid "Global Additional Rel Tags" 279 msgstr "" 280 281 #: includes/Metabox.php:142 282 msgid "Additional Rel Tags" 283 msgstr "" 284 285 #: includes/Metabox.php:145 286 msgid "Comma separated list of additional rel tags" 287 msgstr "" 288 289 #: includes/Metabox.php:155 290 msgid "None" 291 msgstr "" 292 293 #: includes/Metabox.php:156 294 msgid "Tooltip" 295 msgstr "" 296 297 #: includes/Metabox.php:157 298 #: includes/Metabox.php:187 299 #: includes/Metabox.php:224 300 msgid "Text After Link" 301 msgstr "" 302 303 #: includes/Metabox.php:158 304 msgid "Content Statement" 305 msgstr "" 306 307 #: includes/Metabox.php:163 308 msgid "Intro text disclosure" 309 msgstr "" 310 311 #: includes/Metabox.php:166 312 msgid "Disclosure Type" 313 msgstr "" 314 315 #: includes/Metabox.php:180 316 msgid "Default Disclosure Tooltip" 317 msgstr "" 318 319 #: includes/Metabox.php:183 320 msgid "default_tooltip_desc" 321 msgstr "" 322 323 #: includes/Metabox.php:194 324 msgid "Content Disclosure Location" 325 msgstr "" 326 327 #: includes/Metabox.php:198 328 msgid "End of Post" 329 msgstr "" 330 331 #: includes/Metabox.php:199 332 msgid "Beginning of Post" 333 msgstr "" 334 335 #: includes/Metabox.php:200 336 msgid "Custom (Via Shortcode or Action)" 337 msgstr "" 338 339 #: includes/Metabox.php:205 340 msgid "Content Disclosure Text" 341 msgstr "" 342 343 #: includes/Metabox.php:214 344 msgid "Disclosure Text" 345 msgstr "" 346 347 #: includes/Metabox.php:218 348 #: includes/Metabox.php:229 349 msgid "Default: %s" 350 msgstr "" 351 352 #: includes/Metabox.php:227 353 msgid "after_link_text_desc" 354 msgstr "" 355 356 #: includes/Metabox.php:245 357 msgid "Intro text GA tracking" 358 msgstr "" 359 360 #: includes/Metabox.php:253 361 msgid "Event Name" 362 msgstr "" 363 364 #: includes/Metabox.php:258 365 msgid "Event Parameters" 366 msgstr "" 367 368 #: includes/Settings.php:60 369 #: includes/Settings.php:61 475 #: includes/Settings.php:67 476 #: includes/Settings.php:68 370 477 msgid "Settings" 371 478 msgstr "" 372 479 373 #: includes/Settings.php: 65480 #: includes/Settings.php:72 374 481 msgid "General" 375 482 msgstr "" 376 483 377 #: includes/Settings.php:80 484 #: includes/Settings.php:87 485 #: includes/Settings.php:93 378 486 msgid "Appearance" 379 487 msgstr "" 380 488 381 #: includes/Settings.php:86 382 msgid "appearance" 383 msgstr "" 384 385 #: includes/Settings.php:102 386 #: includes/Settings.php:108 489 #: includes/Settings.php:109 490 #: includes/Settings.php:115 387 491 msgid "Disclosure" 388 492 msgstr "" 389 493 390 #: includes/Settings.php: 124391 msgid " Link Tracking"392 msgstr "" 393 394 #: includes/Settings.php: 130395 msgid " Tracking"494 #: includes/Settings.php:206 495 msgid "Affiliate Link" 496 msgstr "" 497 498 #: includes/Settings.php:207 499 msgid " (Affiliate Link)" 396 500 msgstr "" 397 501 398 502 #: includes/Settings.php:209 399 msgid "Affiliate Link"400 msgstr ""401 402 #: includes/Settings.php:210403 msgid " (Affiliate Link)"404 msgstr ""405 406 #: includes/Settings.php:212407 503 msgid "default_content_disclosure_text" 408 504 msgstr "" 409 505 410 #: includes/Shortcode.php: 103506 #: includes/Shortcode.php:59 411 507 msgid "You must specify a category or tag" 412 508 msgstr "" 413 509 414 510 #: assets/app/src/linkgenius-block.js:39 415 #: assets/js/editor .js:78511 #: assets/js/editor/editor.js:2 416 512 msgid "No LinkGenius Link Selected" 417 513 msgstr "" 418 514 419 #: assets/app/src/linkgenius-block.js:5 2420 #: assets/js/editor .js:91515 #: assets/app/src/linkgenius-block.js:51 516 #: assets/js/editor/editor.js:2 421 517 msgid "Edit LinkGenius Link" 422 518 msgstr "" 423 519 424 #: assets/app/src/linkgenius-block.js:5 2425 #: assets/js/editor .js:91520 #: assets/app/src/linkgenius-block.js:51 521 #: assets/js/editor/editor.js:2 426 522 msgid "Preview LinkGenius Link" 427 523 msgstr "" 428 524 525 #: assets/app/src/linkgenius-block.js:58 526 #: assets/app/src/linkgenius-link-format.js:19 527 #: assets/app/src/linkgenius-link-format.js:76 528 #: assets/js/editor/editor.js:2 529 msgid "LinkGenius Link" 530 msgstr "" 531 429 532 #: assets/app/src/linkgenius-block.js:59 430 #: assets/app/src/linkgenius-link-format.js:19 431 #: assets/js/editor.js:98 432 #: assets/js/editor.js:260 433 msgid "LinkGenius Link" 434 msgstr "" 435 436 #: assets/app/src/linkgenius-block.js:60 437 #: assets/js/editor.js:98 533 #: assets/js/editor/editor.js:2 438 534 msgid "Text" 439 535 msgstr "" 440 536 441 #: assets/app/src/linkgenius-block.js:6 4442 #: assets/js/editor .js:105537 #: assets/app/src/linkgenius-block.js:63 538 #: assets/js/editor/editor.js:2 443 539 msgid "Link" 444 540 msgstr "" 445 541 446 542 #: assets/app/src/linkgenius-link-format.js:64 447 #: assets/js/editor.js:304 543 msgid "Remove LinkGenius Link" 544 msgstr "" 545 546 #: assets/app/src/linkgenius-link-selector.js:75 547 #: assets/js/editor/editor.js:2 548 msgid "No link selected" 549 msgstr "" 550 551 #: assets/app/src/linkgenius-link-selector.js:77 552 #: assets/js/editor/editor.js:2 553 msgid "Edit" 554 msgstr "" 555 556 #: assets/app/src/linkgenius-taxonomy-selector.js:47 557 #: assets/js/editor/editor.js:2 558 msgid "Edit LinkGenius List" 559 msgstr "" 560 561 #: assets/app/src/linkgenius-taxonomy-selector.js:47 562 #: assets/js/editor/editor.js:2 563 msgid "Preview LinkGenius List" 564 msgstr "" 565 566 #: assets/app/src/linkgenius-taxonomy-selector.js:60 567 #: assets/js/editor/editor.js:2 568 msgid "LinkGenius Category List" 569 msgstr "" 570 571 #: assets/app/src/linkgenius-taxonomy-selector.js:60 572 #: assets/js/editor/editor.js:2 573 msgid "LinkGenius Tag List" 574 msgstr "" 575 576 #: assets/app/src/linkgenius-taxonomy-selector.js:62 577 #: assets/js/editor/editor.js:2 578 msgid "Category" 579 msgstr "" 580 581 #: assets/app/src/linkgenius-taxonomy-selector.js:62 582 #: assets/js/editor/editor.js:2 583 msgid "Tag" 584 msgstr "" 585 586 #: assets/app/src/linkgenius-taxonomy-selector.js:70 587 #: assets/js/editor/editor.js:2 588 msgid "Sort By" 589 msgstr "" 590 591 #: assets/app/src/linkgenius-taxonomy-selector.js:73 592 #: assets/js/editor/editor.js:2 593 msgid "Title" 594 msgstr "" 595 596 #: assets/app/src/linkgenius-taxonomy-selector.js:77 597 #: assets/js/editor/editor.js:2 598 msgid "Template or seperator" 599 msgstr "" 600 601 #: assets/app/src/linkgenius-taxonomy-selector.js:78 602 #: assets/js/editor/editor.js:2 603 msgid "If {links}{link}{/links} is not found value is treated as seperator. For example, Set to \", \" to make links comma seperated" 604 msgstr "" 605 606 #: assets/app/src/linkgenius-taxonomy-selector.js:127 607 #: assets/js/editor/editor.js:2 608 msgid "No LinkGenius links found" 609 msgstr "" 610 611 #: assets/js/editor/editor.js:2 448 612 msgid "Remove All Affiliate Link" 449 613 msgstr "" 450 614 451 #: assets/app/src/linkgenius-link-format.js:76 452 #: assets/js/editor.js:309 615 #: assets/js/editor/editor.js:2 453 616 msgid "All Affiliate Link" 454 617 msgstr "" 455 456 #: assets/app/src/linkgenius-link-selector.js:76457 #: assets/js/editor.js:465458 msgid "No link selected"459 msgstr ""460 461 #: assets/app/src/linkgenius-link-selector.js:78462 #: assets/js/editor.js:467463 msgid "Edit"464 msgstr ""465 466 #: assets/app/src/linkgenius-taxonomy-selector.js:47467 #: assets/js/editor.js:731468 msgid "Edit LinkGenius List"469 msgstr ""470 471 #: assets/app/src/linkgenius-taxonomy-selector.js:47472 #: assets/js/editor.js:731473 msgid "Preview LinkGenius List"474 msgstr ""475 476 #: assets/app/src/linkgenius-taxonomy-selector.js:60477 #: assets/js/editor.js:745478 msgid "LinkGenius Category List"479 msgstr ""480 481 #: assets/app/src/linkgenius-taxonomy-selector.js:60482 #: assets/js/editor.js:745483 msgid "LinkGenius Tag List"484 msgstr ""485 486 #: assets/app/src/linkgenius-taxonomy-selector.js:62487 #: assets/js/editor.js:745488 msgid "Category"489 msgstr ""490 491 #: assets/app/src/linkgenius-taxonomy-selector.js:62492 #: assets/js/editor.js:745493 msgid "Tag"494 msgstr ""495 496 #: assets/app/src/linkgenius-taxonomy-selector.js:70497 #: assets/js/editor.js:755498 msgid "Sort By"499 msgstr ""500 501 #: assets/app/src/linkgenius-taxonomy-selector.js:73502 #: assets/js/editor.js:760503 msgid "Title"504 msgstr ""505 506 #: assets/app/src/linkgenius-taxonomy-selector.js:77507 #: assets/js/editor.js:769508 msgid "Template or seperator"509 msgstr ""510 511 #: assets/app/src/linkgenius-taxonomy-selector.js:78512 #: assets/js/editor.js:771513 msgid "If {links}{link}{/links} is not found value is treated as seperator. For example, Set to \", \" to make links comma seperated"514 msgstr ""515 516 #: assets/app/src/linkgenius-taxonomy-selector.js:126517 msgid "No LinkGenius links found"518 msgstr ""519 520 #: assets/js/editor.js:867521 msgid "No LinkGenie links found"522 msgstr "" -
linkgenius/trunk/linkgenius.php
r2967528 r2969592 4 4 Plugin URI: https://all-affiliates.com/linkgenius/ 5 5 Description: LinkGenius is a powerful (affiliate) link management plugin. With LinkGenius, you can effortlessly organize, optimize, and track your (affiliate) links, unlocking a new level of efficiency. 6 Version: 1. 0.16 Version: 1.1.0 7 7 Author: all-affiliates.com 8 8 Author URI: https://all-affiliates.com … … 27 27 } 28 28 29 // //Include necessary files and classes29 // Include necessary files and classes 30 30 require_once plugin_dir_path(__FILE__). 'vendor/cmb2/cmb2/init.php'; 31 31 require_once plugin_dir_path(__FILE__). 'vendor/jcchavezs/cmb2-conditionals/cmb2-conditionals.php'; … … 61 61 // Perform deactivation tasks if needed 62 62 } 63 64 // /**65 // * Undocumented function66 // *67 // * @param CMB2 $arg68 // * @return void69 // */70 // function linkgenius_link_metabox($arg) {71 // if($arg->prop('classes') === 'linkgenius-pro') {72 // $arg->set_prop("title", "test");73 // $arg->set_prop("classes", "");74 // }75 // return $arg;76 // }77 // add_filter('linkgenius_link_metabox', 'linkgenius_link_metabox');78 79 80 // add_action('init', function() {81 // wp_register_script('awp-myfirstblock-js', plugins_url('/assets/assets/js/block-awhitepixel-myfirstblock.js', __FILE__));82 83 // register_block_type('awp/firstblock', [84 // 'editor_script' => 'awp-myfirstblock-js',85 // ]);86 // }); -
linkgenius/trunk/readme.txt
r2967528 r2969592 1 === LinkGenius ===1 === Affiliate Link Manager and Shortener Plugin - LinkGenius === 2 2 Contributors: all-affiliates 3 Tags: affiliate links, link manager, link branding, affiliate disclosure, link shortener, affiliate, links, link management, shorten, management, affiliate link manager, link cloaking, link tracking, link shortening, link redirection, affiliate link management, linkgenius, link genius, shorturl, short links, pretty links, better links, shorter links, bitly, tinyurl, 301, 302, 307, redirects, affiliates, affiliate marketing, plugin, url cloaking, url redirection, url shortener, shorten urls, affiilate urls, affiliate seo, affiliate auto link, automatic linking, link tracker, affiliate url, affiliate marketing plugin, manage affiliate links 3 Tags: affiliate links, link manager, link branding, affiliate disclosure, link shortener, affiliate, links, link management, shorten, management, affiliate link manager, link cloaking, link tracking, link shortening, link redirection, affiliate link management, linkgenius, link genius, shorturl, short links, pretty links, better links, shorter links, bitly, tinyurl, 301, 302, 307, redirects, affiliates, affiliate marketing, plugin, url cloaking, url redirection, url shortener, shorten urls, affiilate urls, affiliate seo, affiliate auto link, automatic linking, link tracker, affiliate url, affiliate marketing plugin, manage affiliate links, ftc guidelines 4 4 Donate link: https://all-affiliates.com/linkgenius/ 5 5 Requires at least: 6.2 6 6 Tested up to: 6.3.1 7 7 Requires PHP: 8.0 8 Stable tag: 1. 0.18 Stable tag: 1.1.0 9 9 License: GPL2 10 10 License URI: http://www.gnu.org/licenses/gpl-2.0.html 11 11 12 12 == Description == 13 **Manage your affiliate links with genius precision.** 14 13 15 LinkGenius is a powerful affiliate link management plugin that allows you simplify the management of your affiliate links. 14 Ensuring a seamless user experience for your audience while complying with FTC guidelines and unlocking a newlevel of efficiency.16 Ensuring a seamless user experience while complying with FTC guidelines and unlocking a new genius level of efficiency. 15 17 Let’s take a closer look at what LinkGenius has to offer: 16 18 17 19 18 20 = Link management: = 19 Easily add, edit, and delete affiliate links using LinkGenius. Keep your links organized and easily accessible by categorizing them as needed.20 = Easily add individual links or link lists =21 Easily add, edit, and delete affiliate links using LinkGenius. Keep your links organized and easily accessible by categorizing and tagging them as needed. 22 = Easily add individual links or link lists in your posts or pages = 21 23 Display individual links or a list of affiliate links based on tags or categories to provide a cohesive representation of related links. Customize the layout using templates or separators and order them alphabetically or with a specific order. LinkGenius supports multiple bocks for creating links or lists, shortcodes or by simply selecting a text in the block editor. 22 24 = Customizable link appearance = … … 24 26 = Affiliate disclosure = 25 27 Maintain compliance with FTC guidelines and build trust with your audience by adding an affiliate disclosure statement to your content. Alternatively, you can utilize a tooltip or appended text to clearly indicate which links are affiliate links. 26 = Link cloaking =27 Enhance the appearance and security of your affiliate links by cloaking them. Create shorter, branded, and more memorable links that are less likely to be blocked by ad-blockers or marked as spam. Customize link cloaking on a per-link basis.28 = Link Branding = 29 Enhance the appearance and security of your affiliate links by branding them. Create shorter, branded, and more memorable links that are less likely to be blocked by ad-blockers or marked as spam. Customize link cloaking on a per-link basis. 28 30 = Multiple Redirect Types = Take full control over how your users are redirected, including 301 (Permanent), 302 (Temporary), 307 (Temporary) redirects. 29 31 30 32 = Pro Features = 31 LinkGenius is developing additional advanced features for professional users. Go to [All-affiliates.com](https://all-affiliates.com/linkgenius/pro/) to get notified when it is released.33 While LinkGenius is completely free, there is also a pro version with additional features available. Go to [All-affiliates.com](https://all-affiliates.com/linkgenius/pro/) to get more information on the pro version. 32 34 - Automatic link insertion: Automatically insert affiliate links into your content by linking specific keywords to affiliate URLs. Exclude certain pages or posts from automatic link insertion. 33 - Destination checker: Easily check the final URL of an affiliate link and store it for future comparison.35 - Automatic link replacement: Automatically replace URLs in your content with the either shortened or uncloaked LinkGenius (affiliate) link. 34 36 - Expiring Links: Set an expiration date on your links and redirect users to a specific location after clicking an expired link. You can also make links expire after a certain number of clicks. 35 - Geotargeting: Redirect visitors based on their country of origin to geographically appropriate affiliate URLs. Show different links in tag or category lists based on the visitor's country.37 - Geotargeting: Redirect visitors based on their country of origin to geographically appropriate affiliate URLs. 36 38 - Link tracking with Google Analytics: Track link clicks using Google Analytics, either via JavaScript or server-side. Customize event names and additional parameters. 39 - Destination checker (Comming Soon): Easily check the final URL of an affiliate link and store it for future comparison. 37 40 38 41 == Installation == … … 68 71 Yes, LinkGenius provides the functionality to categorize your affiliate links, making it easier to organize and display related links. You can create lists of affiliate links based on tags or categories, with customizable layouts and sorting options. 69 72 70 = What is link cloaking, and why should I use it? =73 = What is link branding/cloaking, and why should I use it? = 71 74 72 Link cloaking is a feature in LinkGenius that creates shorter, branded, and more memorable affiliate links. It also helps to hide the original affiliate link, making it less likely to be blocked by ad-blockers or marked as spam.75 Link brandnig or link cloaking is a feature in LinkGenius that creates shorter, branded, and more memorable affiliate links. It also helps to hide the original affiliate link, making it less likely to be blocked by ad-blockers or marked as spam. 73 76 74 77 = How can I track the performance of my affiliate links? = … … 85 88 86 89 == Changelog == 90 91 = 1.1.0 = 92 - Added capability management 93 - Added easy copying of branded URLs 94 - Improved layout affiliate disclosure tooltip 95 - Fixed default prefix setting mismatch displayed and applied 87 96 88 97 = 1.0.1 =
Note: See TracChangeset
for help on using the changeset viewer.