Plugin Directory

Changeset 2969592


Ignore:
Timestamp:
09/21/2023 09:09:12 AM (3 years ago)
Author:
allaffiliates
Message:

updated to version 1.1.0

Location:
linkgenius
Files:
2 added
28 edited
1 copied

Legend:

Unmodified
Added
Removed
  • linkgenius/tags/1.1.0/assets/css/tooltip.css

    r2967528 r2969592  
    66/* linkgenius-tooltip text */
    77.linkgenius-tooltip .linkgenius-tooltiptext {
     8    position: absolute;
    89    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;
    1016    background-color: black;
    1117    color: #fff;
    1218    text-align: center;
    13     padding: 5px 0;
    1419    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;   
    2122}
    2223
     
    3536.linkgenius-tooltip:hover .linkgenius-tooltiptext {
    3637    visibility: visible;
     38    opacity: 1;
    3739}
  • linkgenius/tags/1.1.0/assets/js/linkgenius-posttype.js

    r2967528 r2969592  
    1313      });
    1414    })
     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    });
    1548});
  • linkgenius/tags/1.1.0/includes/CPT.php

    r2967528 r2969592  
    55
    66class 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';
    1010
    1111    private function __construct() {
     
    5656            'not_found_in_trash' => __( 'No LinkGenius Links found in Trash.', 'text-domain' ),
    5757        );
    58 
     58        $role = Settings::instance()->get_settings()['general_role'];
    5959        $args = array(
    6060            'labels'             => $labels,
     
    7171            'menu_position'      => null,
    7272            '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            ),
    7491        );
    7592        if(get_option('linkgenius_should_flush', false)) {
     
    102119        );
    103120
     121        $role = Settings::instance()->get_settings()['general_role'];
    104122        $args = array(
    105123            'labels'                     => $labels,
    106124            'hierarchical'               => true,
    107             'public'                     => true,
     125            'public'                     => false,
     126            'show_ui'                    => true,
    108127            'show_admin_column'          => true,
    109128            'show_in_nav_menus'          => true,
    110129            '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            )
    114138        );
    115139
     
    139163        );
    140164
     165        $role = Settings::instance()->get_settings()['general_role'];
    141166        $args = array(
    142167            'labels'                     => $labels,
    143168            'hierarchical'               => false,
    144             'public'                     => true,
     169            'public'                     => false,
     170            'show_ui'                    => true,
    145171            'show_admin_column'          => true,
    146172            'show_in_nav_menus'          => true,
    147173            'show_tagcloud'              => true,
    148             'rewrite'                    => array( 'slug' => __( 'linkgenius-tag', 'text-domain' ) ),
     174            'rewrite'                    => false,
    149175            'show_in_rest'               => true,
     176            'capabilities'      => array(
     177                'manage_terms' => $role,
     178                'edit_terms'   => $role,
     179                'delete_terms' => $role,
     180                'assign_terms' => $role
     181            )
    150182        );
    151183
     
    280312            'classes'      => 'linkgenius-pro'
    281313        ));
    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        }
    315318        $autolink_metabox = apply_filters("linkgenius_link_metabox", $autolink_metabox);
    316319
     
    324327            'classes'      => 'linkgenius-pro'
    325328        ));
    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        }
    363333        $expiration_metabox = apply_filters("linkgenius_link_metabox", $expiration_metabox);
    364334
     
    382352            'id'          => 'geolocation_redirects',
    383353            'type'        => 'group',
    384             'description' => __('Geolocation Redirects', 'linkgenius'),
     354            'description' => __('Geolocation Rules', 'linkgenius'),
    385355            'repeatable'  => true,
    386356            'options'     => array(
     
    398368
    399369        $geolocation_metabox->add_group_field($geolocation_redirects_group, array(
    400             'name' => __('Affiliate URL', 'linkgenius'),
    401             'id'   => 'affiliate_url',
     370            'name' => __('Target URL', 'linkgenius'),
     371            'id'   => 'target_url',
    402372            'type' => 'text_url',
    403373        ));
    404374        $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
    405418
    406419        // GA Link Tracking Metabox
     
    413426            'classes'      => 'linkgenius-pro'
    414427        ));
    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();
    422429        foreach($fields as $field) {
    423430            $ga_tracking_metabox->add_field($field);
     
    476483    public static function instance() {
    477484        static $instance = null;
    478         if($instance == null)
    479             $instance = new self();
     485        if($instance == null) {
     486            $instance = new static();
     487        }
    480488        return $instance;
    481489    }
  • linkgenius/tags/1.1.0/includes/Discloser.php

    r2967528 r2969592  
    6969    public static function instance() {
    7070        static $instance = null;
    71         if($instance == null)
    72             $instance = new self();
     71        if($instance == null) {
     72            $instance = new static();
     73        }
    7374        return $instance;
    7475    }
  • linkgenius/tags/1.1.0/includes/Editor.php

    r2967528 r2969592  
    77    function __construct()
    88    {
    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         });
    159        add_filter( 'block_categories_all', [$this, 'add_linkgenius_link_block_category']);
    1610        // enqueue scripts and styles for the editor
     
    4337                array(
    4438                    'slug' => 'linkgenius',
    45                     'title' => 'All Affiliate Links',
     39                    'title' => 'LinkGenius Links',
    4640                ),
    4741            ),
     
    4943        );
    5044    }
    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     // }
    6245   
    6346    //
     
    125108            );
    126109            $query = new WP_Query( $args );
    127             // @header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );
    128110       
    129111            $links = array_map(fn($post) => [
     
    153135            $shortcode = "[linkgenius-list ".$_GET['taxonomy']."=".sanitize_title($_GET['item_slug'])." sort=".$_GET['sort']."]".wp_kses_post($_GET['template'])."[/linkgenius-list]";
    154136            $preview = do_shortcode($shortcode);
    155             // @header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );
    156137            wp_send_json_success( $preview);
    157138        }
  • linkgenius/tags/1.1.0/includes/Metabox.php

    r2967528 r2969592  
    55class Metabox
    66{
     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
    769    public function get_general_fields($for_settings = false)
    870    {
     
    2486                ),
    2587                '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'),
    2789                'sanitization_cb' => 'sanitize_title'
    2890            );
     
    54116                'name'              => __('Link Prefix', 'linkgenius'),
    55117                'type'              => 'text',
    56                 'default'           => 'go',
     118                'default'           => Settings::$DEFAULTS['general']['general_prefix'] ?? "go",
    57119                'sanitization_cb'   => 'sanitize_title',
    58120                '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')
    59135            );
    60136            $fields[] = array(
     
    92168    public function get_link_appearance_fields($for_settings = false)
    93169    {
    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         };
    112170        $fields = array(
    113171            array(
     
    122180                'desc' => __('Comma separated list of CSS classes', 'linkgenius')
    123181            ),
    124             $add_check_options(array(
     182            $this->add_check_options(array(
    125183                'name' => __('Open in New Tab', 'linkgenius'),
    126184                'id'   => 'appearance_new_tab',
    127185                '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(
    130188                'name' => __('Parameter Forwarding', 'linkgenius'),
    131189                'id'   => 'appearance_parameter_forwarding'
    132             )),
    133             $add_check_options(array(
     190            ), $for_settings),
     191            $this->add_check_options(array(
    134192                'name' => __('Sponsored Attribute', 'linkgenius'),
    135193                'id'   => 'appearance_sponsored_attribute'
    136             )),
    137             $add_check_options(array(
     194            ), $for_settings),
     195            $this->add_check_options(array(
    138196                'name' => __('Nofollow Attribute', 'linkgenius'),
    139197                'id'   => 'appearance_nofollow_attribute'
    140             ))
     198            ), $for_settings)
    141199        );
    142200        $rel_tags = array(
     
    271329        $fields = array();
    272330        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            ));
    273387            $fields[] = array(
    274388                'id'   => 'tracking_defaults_title',
     
    278392            );
    279393        }
     394        else {
     395            $fields[] = array(
     396                'id'   => 'tracking_title',
     397                'type' => 'title',
     398                'desc' => __('Intro text GA tracking', 'linkgenius')
     399            );
     400        }
    280401        $fields = array_merge($fields, array(
    281             array(
     402            $this->add_check_options(array(
    282403                '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),
    287406            array(
    288407                'name' => __('Event Name', 'linkgenius'),
     
    295414                'id'      => 'tracking_parameters',
    296415                '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')
    298418            )
    299419        ));
    300420        return $fields;
    301421    }
     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    }
    302509}
     510
     511add_action( 'cmb2_render_clicks', [new Metabox(), 'cmb2_render_callback_for_clicks'], 10, 5 );
  • linkgenius/tags/1.1.0/includes/Redirect.php

    r2967528 r2969592  
    1818        if ($post && 'linkgenius_link' === $post->post_type) {
    1919            $data = get_post_meta($post->ID);
    20             $data = apply_filters('linkgenius_links/before_redirect', $data);
    21             if ($data === null) {
     20            if ($data === false) {
    2221                return false;
    2322            }
    2423            $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);
    2625            if(empty($data['general_target_url'])) {
    2726                return false;
     
    6059            wp_redirect( $target_url, intval($redirect_type));
    6160            flush();
    62             do_action("linkgenius_after_redirect", $data);
     61            do_action("linkgenius_after_redirect", $data, $post->ID);
    6362            exit();
    6463        }
  • linkgenius/tags/1.1.0/includes/Settings.php

    r2967528 r2969592  
    3232        }
    3333
    34         // Highlight the Settings submenu item when on the Settings2 page
    35         if (
     34        // Highlight the Settings submenu item when on one of the settings pages
     35        if ( // Is this a settings page
    3636            isset($_GET['page']) && str_starts_with($_GET['page'], self::OPTIONS_PREFIX)
    3737            && isset($_GET['post_type']) && $_GET['post_type'] === CPT::TYPE_LINK
     
    4343                }
    4444            }
    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);
    4653    }
    4754
     
    121128    {
    122129        static $instance = null;
    123         if($instance == null)
    124             $instance = new self();
     130        if($instance == null) {
     131            $instance = new static();
     132        }
    125133        return $instance;
    126134    }
     
    146154     *     - 'disclosure_statement': The disclosure statement to use.
    147155     *   - '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.
    148159     */
    149160    public function get_settings()
     
    171182
    172183    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']) {
    174185            add_option('linkgenius_should_flush', true);
    175186        }
    176         var_dump($old_val);
    177187    }
    178188}
     
    180190    'general' => [
    181191        'general_prefix' => "out",
     192        'general_role' => 'manage_options',
    182193        'general_redirect_type' => '301',
    183194        'general_uncloak' => false,
     
    199210    ],
    200211    'tracking' => [
    201         'tracking_enabled' => '1',
     212        'tracking_enabled' => '0',
    202213        'tracking_name' => 'linkgenius',
    203214        'tracking_parameters' => "'category': '%category%'\r\n'url':'%url%'"
  • linkgenius/tags/1.1.0/includes/Shortcode.php

    r2967528 r2969592  
    33
    44class Shortcode {
    5     private $has_tooltip = false;
    65    function __construct()
    76    {
     
    98        add_shortcode('linkgenius-link', array($this, 'linkgenius_link_shortcode'));
    109        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       }
    1810    }
    1911
     
    2416     
    2517        $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";
    8519    }
    8620   
     
    13872          foreach($links as $link) {
    13973            $output .= $prelink.
    140                 $this->linkgenius_link_shortcode(array('id' => $link->ID), $link->post_title)
     74                LinkBuilder::instance()->get_link($link->ID, $link->post_title)
    14175                .$postlink;
    14276          }
     
    14579        }
    14680        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));
    14882        }
    14983        return $output;
  • linkgenius/tags/1.1.0/languages/linkgenius-fallback.po

    r2967528 r2969592  
    3434msgstr ""
    3535
    36 #: includes/CPT.php:248
     36#: includes/CPT.php:280
    3737msgid "Link Appearance"
    3838msgstr ""
    3939
    40 #: includes/CPT.php:262
     40#: includes/CPT.php:294
    4141msgid "Link Disclosure"
    4242msgstr ""
    4343
    44 #: includes/CPT.php:276
     44#: includes/CPT.php:308
    4545msgid "Auto Link (Pro)"
    4646msgstr ""
    4747
    48 #: includes/CPT.php:286
     48#: includes/Metabox.php:434
    4949msgid "Intro text autolink"
    5050msgstr "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."
    5151
    52 #: includes/CPT.php:290
     52#: includes/Metabox.php:101
     53#: includes/Metabox.php:437
    5354#: assets/app/src/linkgenius-taxonomy-selector.js:72
    54 #: assets/js/editor.js:757
     55#: assets/js/editor/editor.js:2
    5556msgid "Order"
    5657msgstr ""
    5758
    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
    6360msgid "Keywords"
    6461msgstr ""
    6562
    66 #: includes/CPT.php:305
     63#: includes/Metabox.php:452
    6764msgid "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."
    6865msgstr ""
    6966
    70 #: includes/CPT.php:309
     67#: includes/Metabox.php:455
    7168msgid "URLs"
    7269msgstr ""
    7370
    74 #: includes/CPT.php:312
     71#: includes/Metabox.php:458
    7572msgid "Enter URLs that will automatically be replaced with this LinkGenius link. One url per line."
    7673msgstr ""
    7774
    78 #: includes/CPT.php:329
     75#: includes/Metabox.php:473
    7976msgid "Intro text expiration"
    8077msgstr "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."
    8178
    82 #: includes/CPT.php:336
     79#: includes/Metabox.php:479
    8380msgid "Date after which link expires. (optional)"
    8481msgstr ""
    8582
    86 #: includes/CPT.php:340
     83#: includes/Metabox.php:482
    8784msgid "Expiration Clicks"
    8885msgstr ""
    8986
    90 #: includes/CPT.php:349
     87#: includes/Metabox.php:491
    9188msgid "Number of clicks after which the link expires. (optional)"
    9289msgstr ""
    9390
    94 #: includes/CPT.php:353
     91#: includes/Metabox.php:500
    9592msgid "Redirect After Expiry"
    9693msgstr ""
    9794
    98 #: includes/CPT.php:356
     95#: includes/Metabox.php:503
    9996msgid "The url to redirect to after link expired (used only if date or clicks are set)."
    10097msgstr ""
    10198
    102 #: includes/CPT.php:367
     99#: includes/CPT.php:338
    103100msgid "Geolocation Redirects (Pro)"
    104101msgstr ""
    105102
    106 #: includes/CPT.php:377
     103#: includes/CPT.php:348
    107104msgid "Intro text Geolocation"
    108105msgstr "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."
    109106
    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
    115109msgid "Redirect {#}"
    116110msgstr ""
    117111
    118 #: includes/CPT.php:387
     112#: includes/CPT.php:358
     113#: includes/CPT.php:400
    119114msgid "Add Another Redirect"
    120115msgstr ""
    121116
    122 #: includes/CPT.php:388
     117#: includes/CPT.php:359
     118#: includes/CPT.php:401
    123119msgid "Remove Redirect"
    124120msgstr ""
    125121
    126 #: includes/CPT.php:393
     122#: includes/CPT.php:364
    127123msgid "Country Code"
    128124msgstr ""
    129125
    130 #: includes/CPT.php:399
    131 msgid "Affiliate URL"
    132 msgstr ""
    133 
    134 #: includes/CPT.php:408
     126#: includes/CPT.php:422
    135127msgid "GA Link Tracking (Pro)"
    136128msgstr ""
    137129
    138 #: includes/Editor.php:84
    139 msgid "Missing required post data"
    140 msgstr ""
    141 
    142 #: includes/Metabox.php:12
     130#: includes/Metabox.php:74
    143131msgid "301 Permanent Redirect"
    144132msgstr ""
    145133
    146 #: includes/Metabox.php:13
     134#: includes/Metabox.php:75
    147135msgid "302 Temporary Redirect"
    148136msgstr ""
    149137
    150 #: includes/Metabox.php:14
     138#: includes/Metabox.php:76
    151139msgid "307 Temporary Redirect"
    152140msgstr ""
    153141
    154 #: includes/Metabox.php:17
    155 #: includes/Metabox.php:78
    156 #: includes/Metabox.php:104
    157 #: includes/Metabox.php:170
     142#: includes/Metabox.php:61
     143#: includes/Metabox.php:79
     144#: includes/Metabox.php:155
     145#: includes/Metabox.php:253
    158146msgid "Default (%s)"
    159147msgstr ""
    160148
    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
    166150msgid "Target URL*"
    167151msgstr ""
    168152
    169 #: includes/Metabox.php:36
     153#: includes/Metabox.php:98
    170154msgid "The target (affiliate) link."
    171155msgstr ""
    172156
    173 #: includes/Metabox.php:39
    174 msgid "Order*"
    175 msgstr ""
    176 
    177 #: includes/Metabox.php:47
     157#: includes/Metabox.php:110
    178158msgid "The order for the link, used when displaying all links of a tag or category"
    179159msgstr ""
    180160
    181 #: includes/Metabox.php:53
     161#: includes/Metabox.php:116
    182162msgid "Link Prefix"
    183163msgstr ""
    184164
    185 #: includes/Metabox.php:57
     165#: includes/Metabox.php:120
    186166msgid "The prefix for your link, for example <i>go, recommends, out, link, affiliate</i>. The link will look like <b>%1$sprefix/slug</b>."
    187167msgstr ""
    188168
     169#: includes/Metabox.php:138
     170msgid "Defaults"
     171msgstr ""
     172
     173#: includes/Metabox.php:140
     174msgid "Intro default general setings"
     175msgstr ""
     176
     177#: includes/Metabox.php:145
     178msgid "Redirect Type"
     179msgstr ""
     180
    189181#: 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
     186msgid "Enabled"
     187msgstr ""
     188
     189#: includes/Metabox.php:61
    193190#: 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
    213193msgid "Disabled"
    214194msgstr ""
    215195
    216 #: includes/Metabox.php:84
     196#: includes/Metabox.php:161
    217197msgid "No Cloaking"
    218198msgstr ""
    219199
    220 #: includes/Metabox.php:86
     200#: includes/Metabox.php:163
    221201msgid "When checked affiliate url of LinkGenius Links will be outputted in content instead of the slug."
    222202msgstr ""
    223203
    224 #: includes/Metabox.php:115
     204#: includes/Metabox.php:213
    225205msgid "Default Link appearance"
    226206msgstr ""
    227207
    228 #: includes/Metabox.php:116
     208#: includes/Metabox.php:174
    229209msgid "Intro text appearance"
    230210msgstr "Determine how the link will appear in your content."
    231211
    232 #: includes/Metabox.php:119
     212#: includes/Metabox.php:177
    233213msgid "Global CSS Classes"
    234214msgstr ""
    235215
    236 #: includes/Metabox.php:119
     216#: includes/Metabox.php:177
    237217msgid "CSS Classes"
    238218msgstr ""
    239219
    240 #: includes/Metabox.php:122
     220#: includes/Metabox.php:180
    241221msgid "Comma separated list of CSS classes"
    242222msgstr ""
    243223
    244 #: includes/Metabox.php:125
     224#: includes/Metabox.php:183
    245225msgid "Open in New Tab"
    246226msgstr ""
    247227
    248 #: includes/Metabox.php:127
     228#: includes/Metabox.php:185
    249229msgid "Open the URL in a new tab when clicked. Done by adding target=\"_blank\" tag."
    250230msgstr ""
    251231
    252 #: includes/Metabox.php:130
     232#: includes/Metabox.php:188
    253233msgid "Parameter Forwarding"
    254234msgstr ""
    255235
    256 #: includes/Metabox.php:134
     236#: includes/Metabox.php:192
    257237msgid "Sponsored Attribute"
    258238msgstr ""
    259239
    260 #: includes/Metabox.php:138
     240#: includes/Metabox.php:196
    261241msgid "Nofollow Attribute"
    262242msgstr ""
    263243
    264 #: includes/Metabox.php:142
     244#: includes/Metabox.php:201
    265245msgid "Global Additional Rel Tags"
    266246msgstr ""
    267247
    268 #: includes/Metabox.php:142
     248#: includes/Metabox.php:201
    269249msgid "Additional Rel Tags"
    270250msgstr ""
    271251
    272 #: includes/Metabox.php:145
     252#: includes/Metabox.php:204
    273253msgid "Comma separated list of additional rel tags"
    274254msgstr ""
    275255
    276 #: includes/Metabox.php:155
     256#: includes/Metabox.php:228
    277257msgid "None"
    278258msgstr ""
    279259
    280 #: includes/Metabox.php:156
     260#: includes/Metabox.php:229
    281261msgid "Tooltip"
    282262msgstr ""
    283263
    284 #: includes/Metabox.php:157
    285 #: includes/Metabox.php:187
    286 #: includes/Metabox.php:224
     264#: includes/Metabox.php:230
     265#: includes/Metabox.php:270
     266#: includes/Metabox.php:312
    287267msgid "Text After Link"
    288268msgstr ""
    289269
    290 #: includes/Metabox.php:158
     270#: includes/Metabox.php:231
    291271msgid "Content Statement"
    292272msgstr ""
    293273
    294 #: includes/Metabox.php:163
     274#: includes/Metabox.php:236
    295275msgid "Intro text disclosure"
    296276msgstr "Show an (affiliate link) disclosure statement when this link appears in your content."
    297277
    298 #: includes/Metabox.php:166
     278#: includes/Metabox.php:249
    299279msgid "Disclosure Type"
    300280msgstr ""
    301281
    302 #: includes/Metabox.php:180
     282#: includes/Metabox.php:263
    303283msgid "Default Disclosure Tooltip"
    304284msgstr ""
    305285
    306 #: includes/Metabox.php:183
     286#: includes/Metabox.php:266
    307287msgid "default_tooltip_desc"
    308288msgstr ""
    309289
    310 #: includes/Metabox.php:194
     290#: includes/Metabox.php:282
    311291msgid "Content Disclosure Location"
    312292msgstr ""
    313293
    314 #: includes/Metabox.php:198
     294#: includes/Metabox.php:286
    315295msgid "End of Post"
    316296msgstr ""
    317297
    318 #: includes/Metabox.php:199
     298#: includes/Metabox.php:287
    319299msgid "Beginning of Post"
    320300msgstr ""
    321301
    322 #: includes/Metabox.php:200
     302#: includes/Metabox.php:288
    323303msgid "Custom (Via Shortcode or Action)"
    324304msgstr ""
    325305
    326 #: includes/Metabox.php:205
     306#: includes/Metabox.php:293
    327307msgid "Content Disclosure Text"
    328308msgstr ""
    329309
    330 #: includes/Metabox.php:214
     310#: includes/Metabox.php:302
    331311msgid "Disclosure Text"
    332312msgstr ""
    333313
    334 #: includes/Metabox.php:218
    335 #: includes/Metabox.php:229
     314#: includes/Metabox.php:306
     315#: includes/Metabox.php:317
    336316msgid "Default: %s"
    337317msgstr ""
    338318
    339 #: includes/Metabox.php:227
     319#: includes/Metabox.php:315
    340320msgid "after_link_text_desc"
    341321msgstr ""
    342322
    343 #: includes/Metabox.php:245
     323#: includes/Metabox.php:401
    344324msgid "Intro text GA tracking"
    345325msgstr "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."
    346326
    347 #: includes/Metabox.php:253
     327#: includes/Metabox.php:410
    348328msgid "Event Name"
    349329msgstr ""
    350330
    351 #: includes/Metabox.php:258
     331#: includes/Metabox.php:416
    352332msgid "Event Parameters"
    353333msgstr ""
    354334
    355 #: includes/Settings.php:60
    356 #: includes/Settings.php:61
     335#: includes/Settings.php:67
     336#: includes/Settings.php:68
    357337msgid "Settings"
    358338msgstr ""
    359339
    360 #: includes/Settings.php:65
     340#: includes/Settings.php:72
    361341msgid "General"
    362342msgstr ""
    363343
    364 #: includes/Settings.php:80
     344#: includes/Settings.php:87
     345#: includes/Settings.php:93
    365346msgid "Appearance"
    366347msgstr ""
    367348
    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
    374351msgid "Disclosure"
    375352msgstr ""
    376353
    377 #: includes/Settings.php:124
    378 msgid "Link Tracking"
    379 msgstr ""
    380 
    381 #: includes/Settings.php:130
    382 msgid "Tracking"
     354#: includes/Settings.php:206
     355msgid "Affiliate Link"
     356msgstr ""
     357
     358#: includes/Settings.php:207
     359msgid " (Affiliate Link)"
    383360msgstr ""
    384361
    385362#: includes/Settings.php:209
    386 msgid "Affiliate Link"
    387 msgstr ""
    388 
    389 #: includes/Settings.php:210
    390 msgid " (Affiliate Link)"
    391 msgstr ""
    392 
    393 #: includes/Settings.php:212
    394363msgid "default_content_disclosure_text"
    395364msgstr "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."
    396365
    397 #: includes/Shortcode.php:103
     366#: includes/Shortcode.php:59
    398367msgid "You must specify a category or tag"
    399368msgstr ""
    400369
    401370#: assets/app/src/linkgenius-block.js:39
    402 #: assets/js/editor.js:78
     371#: assets/js/editor/editor.js:2
    403372msgid "No LinkGenius Link Selected"
    404373msgstr ""
    405374
    406 #: assets/app/src/linkgenius-block.js:52
    407 #: assets/js/editor.js:91
     375#: assets/app/src/linkgenius-block.js:51
     376#: assets/js/editor/editor.js:2
    408377msgid "Edit LinkGenius Link"
    409378msgstr ""
    410379
    411 #: assets/app/src/linkgenius-block.js:52
    412 #: assets/js/editor.js:91
     380#: assets/app/src/linkgenius-block.js:51
     381#: assets/js/editor/editor.js:2
    413382msgid "Preview LinkGenius Link"
    414383msgstr ""
    415384
     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
     389msgid "LinkGenius Link"
     390msgstr ""
     391
    416392#: 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
    425394msgid "Text"
    426395msgstr ""
    427396
    428 #: assets/app/src/linkgenius-block.js:64
    429 #: assets/js/editor.js:105
     397#: assets/app/src/linkgenius-block.js:63
     398#: assets/js/editor/editor.js:2
    430399msgid "Link"
    431400msgstr ""
    432401
    433402#: assets/app/src/linkgenius-link-format.js:64
    434 #: assets/js/editor.js:304
     403msgid "Remove LinkGenius Link"
     404msgstr ""
     405
     406#: assets/app/src/linkgenius-link-selector.js:75
     407#: assets/js/editor/editor.js:2
     408msgid "No link selected"
     409msgstr ""
     410
     411#: assets/app/src/linkgenius-link-selector.js:77
     412#: assets/js/editor/editor.js:2
     413msgid "Edit"
     414msgstr ""
     415
     416#: assets/app/src/linkgenius-taxonomy-selector.js:47
     417#: assets/js/editor/editor.js:2
     418msgid "Edit LinkGenius List"
     419msgstr ""
     420
     421#: assets/app/src/linkgenius-taxonomy-selector.js:47
     422#: assets/js/editor/editor.js:2
     423msgid "Preview LinkGenius List"
     424msgstr ""
     425
     426#: assets/app/src/linkgenius-taxonomy-selector.js:60
     427#: assets/js/editor/editor.js:2
     428msgid "LinkGenius Category List"
     429msgstr ""
     430
     431#: assets/app/src/linkgenius-taxonomy-selector.js:60
     432#: assets/js/editor/editor.js:2
     433msgid "LinkGenius Tag List"
     434msgstr ""
     435
     436#: assets/app/src/linkgenius-taxonomy-selector.js:62
     437#: assets/js/editor/editor.js:2
     438msgid "Category"
     439msgstr ""
     440
     441#: assets/app/src/linkgenius-taxonomy-selector.js:62
     442#: assets/js/editor/editor.js:2
     443msgid "Tag"
     444msgstr ""
     445
     446#: assets/app/src/linkgenius-taxonomy-selector.js:70
     447#: assets/js/editor/editor.js:2
     448msgid "Sort By"
     449msgstr ""
     450
     451#: assets/app/src/linkgenius-taxonomy-selector.js:73
     452#: assets/js/editor/editor.js:2
     453msgid "Title"
     454msgstr ""
     455
     456#: assets/app/src/linkgenius-taxonomy-selector.js:77
     457#: assets/js/editor/editor.js:2
     458msgid "Template or seperator"
     459msgstr ""
     460
     461#: assets/app/src/linkgenius-taxonomy-selector.js:78
     462#: assets/js/editor/editor.js:2
     463msgid "If {links}{link}{/links} is not found value is treated as seperator. For example, Set to \", \" to make links comma seperated"
     464msgstr ""
     465
     466#: assets/app/src/linkgenius-taxonomy-selector.js:127
     467#: assets/js/editor/editor.js:2
     468msgid "No LinkGenius links found"
     469msgstr ""
     470
     471#: includes/Metabox.php:81
     472msgid "Slug*"
     473msgstr ""
     474
     475#: includes/CPT.php:323
     476msgid "Link Expiration (Pro)"
     477msgstr ""
     478
     479#: includes/Metabox.php:476
     480msgid "Expiration Date"
     481msgstr ""
     482
     483#: includes/CPT.php:354
     484msgid "Geolocation Rules"
     485msgstr ""
     486
     487#: includes/CPT.php:370
     488#: includes/CPT.php:412
     489msgid "Target URL"
     490msgstr ""
     491
     492#: includes/CPT.php:380
     493msgid "Useragent Rules (Pro)"
     494msgstr ""
     495
     496#: includes/CPT.php:390
     497msgid "Intro text useragent"
     498msgstr ""
     499
     500#: includes/CPT.php:396
     501msgid "Useragent Redirects"
     502msgstr ""
     503
     504#: includes/CPT.php:406
     505msgid "User Agent Regex"
     506msgstr ""
     507
     508#: includes/Metabox.php:88
     509msgid "<a href=\"#\" id=\"copy_url\">Copy</a><p>The url to link to in your content.</p>"
     510msgstr ""
     511
     512#: includes/Metabox.php:124
     513msgid "Mimimum Role Linkmanagement"
     514msgstr ""
     515
     516#: includes/Metabox.php:127
     517msgid "Administrator"
     518msgstr ""
     519
     520#: includes/Metabox.php:128
     521msgid "Editor"
     522msgstr ""
     523
     524#: includes/Metabox.php:129
     525msgid "Author"
     526msgstr ""
     527
     528#: includes/Metabox.php:130
     529msgid "Contributor"
     530msgstr ""
     531
     532#: includes/Metabox.php:131
     533msgid "Subscriber"
     534msgstr ""
     535
     536#: includes/Metabox.php:134
     537msgid "The minimum role a user needs in order to create, edit or delete LinkGenius Links. The settings page will remain visible for administrators only."
     538msgstr ""
     539
     540#: includes/Metabox.php:214
     541#: includes/Metabox.php:244
     542#: includes/Metabox.php:394
     543msgid "Default settings, can be overriden per individual link."
     544msgstr ""
     545
     546#: includes/Metabox.php:243
     547msgid "Default disclosure settings"
     548msgstr ""
     549
     550#: includes/Metabox.php:279
     551msgid "Content disclosure settings"
     552msgstr ""
     553
     554#: includes/Metabox.php:345
     555msgid "Tracking Configuration"
     556msgstr ""
     557
     558#: includes/Metabox.php:346
     559msgid "Tracking api description"
     560msgstr ""
     561
     562#: includes/Metabox.php:349
     563msgid "Tracking Method"
     564msgstr ""
     565
     566#: includes/Metabox.php:353
     567msgid "Javascript"
     568msgstr ""
     569
     570#: includes/Metabox.php:354
     571msgid "Serverside Api"
     572msgstr ""
     573
     574#: includes/Metabox.php:357
     575msgid "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."
     576msgstr ""
     577
     578#: includes/Metabox.php:360
     579msgid "GA4 Measurement ID"
     580msgstr ""
     581
     582#: includes/Metabox.php:366
     583msgid "GA4 Api Secret"
     584msgstr ""
     585
     586#: includes/Metabox.php:372
     587msgid "Linkgenius Cookie Fallback"
     588msgstr ""
     589
     590#: includes/Metabox.php:377
     591msgid "<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>"
     592msgstr ""
     593
     594#: includes/Metabox.php:382
     595msgid "Don't track bots"
     596msgstr ""
     597
     598#: includes/Metabox.php:393
     599msgid "Default GA tracking settings"
     600msgstr ""
     601
     602#: includes/Metabox.php:420
     603msgid "You can use the variables %cloaked_url%, %target_url%, %categories%, %tags% and %referrer%"
     604msgstr ""
     605
     606#: includes/Metabox.php:446
     607msgid "A lower order means earlier execution when dealing with conflicting keywords or urls"
     608msgstr ""
     609
     610#: assets/js/editor/editor.js:2
    435611msgid "Remove All Affiliate Link"
    436612msgstr ""
    437613
    438 #: assets/app/src/linkgenius-link-format.js:76
    439 #: assets/js/editor.js:309
     614#: assets/js/editor/editor.js:2
    440615msgid "All Affiliate Link"
    441616msgstr ""
    442 
    443 #: assets/app/src/linkgenius-link-selector.js:76
    444 #: assets/js/editor.js:465
    445 msgid "No link selected"
    446 msgstr ""
    447 
    448 #: assets/app/src/linkgenius-link-selector.js:78
    449 #: assets/js/editor.js:467
    450 msgid "Edit"
    451 msgstr ""
    452 
    453 #: assets/app/src/linkgenius-taxonomy-selector.js:47
    454 #: assets/js/editor.js:731
    455 msgid "Edit LinkGenius List"
    456 msgstr ""
    457 
    458 #: assets/app/src/linkgenius-taxonomy-selector.js:47
    459 #: assets/js/editor.js:731
    460 msgid "Preview LinkGenius List"
    461 msgstr ""
    462 
    463 #: assets/app/src/linkgenius-taxonomy-selector.js:60
    464 #: assets/js/editor.js:745
    465 msgid "LinkGenius Category List"
    466 msgstr ""
    467 
    468 #: assets/app/src/linkgenius-taxonomy-selector.js:60
    469 #: assets/js/editor.js:745
    470 msgid "LinkGenius Tag List"
    471 msgstr ""
    472 
    473 #: assets/app/src/linkgenius-taxonomy-selector.js:62
    474 #: assets/js/editor.js:745
    475 msgid "Category"
    476 msgstr ""
    477 
    478 #: assets/app/src/linkgenius-taxonomy-selector.js:62
    479 #: assets/js/editor.js:745
    480 msgid "Tag"
    481 msgstr ""
    482 
    483 #: assets/app/src/linkgenius-taxonomy-selector.js:70
    484 #: assets/js/editor.js:755
    485 msgid "Sort By"
    486 msgstr ""
    487 
    488 #: assets/app/src/linkgenius-taxonomy-selector.js:73
    489 #: assets/js/editor.js:760
    490 msgid "Title"
    491 msgstr ""
    492 
    493 #: assets/app/src/linkgenius-taxonomy-selector.js:77
    494 #: assets/js/editor.js:769
    495 msgid "Template or seperator"
    496 msgstr ""
    497 
    498 #: assets/app/src/linkgenius-taxonomy-selector.js:78
    499 #: assets/js/editor.js:771
    500 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:126
    504 msgid "No LinkGenius links found"
    505 msgstr ""
    506 
    507 #: assets/js/editor.js:867
    508 msgid "No LinkGenie links found"
    509 msgstr ""
    510 
    511 #: includes/Metabox.php:19
    512 msgid "Slug*"
    513 msgstr ""
    514 
    515 #: includes/CPT.php:319
    516 msgid "Link Expiration (Pro)"
    517 msgstr ""
    518 
    519 #: includes/CPT.php:333
    520 msgid "Expiration Date"
    521 msgstr ""
  • linkgenius/tags/1.1.0/languages/linkgenius.pot

    r2967528 r2969592  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: LinkGenius 1.0.0\n"
     5"Project-Id-Version: LinkGenius 1.0.1\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/linkgenius\n"
    77"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
     
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"Content-Transfer-Encoding: 8bit\n"
    12 "POT-Creation-Date: 2023-06-15T11:35:31+00:00\n"
     12"POT-Creation-Date: 2023-09-21T07:55:51+00:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    1414"X-Generator: WP-CLI 2.7.1\n"
     
    3535msgstr ""
    3636
    37 #: includes/CPT.php:248
     37#: includes/CPT.php:280
    3838msgid "Link Appearance"
    3939msgstr ""
    4040
    41 #: includes/CPT.php:262
     41#: includes/CPT.php:294
    4242msgid "Link Disclosure"
    4343msgstr ""
    4444
    45 #: includes/CPT.php:276
     45#: includes/CPT.php:308
    4646msgid "Auto Link (Pro)"
    4747msgstr ""
    4848
    49 #: includes/CPT.php:286
     49#: includes/CPT.php:323
     50msgid "Link Expiration (Pro)"
     51msgstr ""
     52
     53#: includes/CPT.php:338
     54msgid "Geolocation Redirects (Pro)"
     55msgstr ""
     56
     57#: includes/CPT.php:348
     58msgid "Intro text Geolocation"
     59msgstr ""
     60
     61#: includes/CPT.php:354
     62msgid "Geolocation Rules"
     63msgstr ""
     64
     65#: includes/CPT.php:357
     66#: includes/CPT.php:399
     67msgid "Redirect {#}"
     68msgstr ""
     69
     70#: includes/CPT.php:358
     71#: includes/CPT.php:400
     72msgid "Add Another Redirect"
     73msgstr ""
     74
     75#: includes/CPT.php:359
     76#: includes/CPT.php:401
     77msgid "Remove Redirect"
     78msgstr ""
     79
     80#: includes/CPT.php:364
     81msgid "Country Code"
     82msgstr ""
     83
     84#: includes/CPT.php:370
     85#: includes/CPT.php:412
     86msgid "Target URL"
     87msgstr ""
     88
     89#: includes/CPT.php:380
     90msgid "Useragent Rules (Pro)"
     91msgstr ""
     92
     93#: includes/CPT.php:390
     94msgid "Intro text useragent"
     95msgstr ""
     96
     97#: includes/CPT.php:396
     98msgid "Useragent Redirects"
     99msgstr ""
     100
     101#: includes/CPT.php:406
     102msgid "User Agent Regex"
     103msgstr ""
     104
     105#: includes/CPT.php:422
     106msgid "GA Link Tracking (Pro)"
     107msgstr ""
     108
     109#: includes/Metabox.php:61
     110#: includes/Metabox.php:79
     111#: includes/Metabox.php:155
     112#: includes/Metabox.php:253
     113msgid "Default (%s)"
     114msgstr ""
     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
     121msgid "Enabled"
     122msgstr ""
     123
     124#: includes/Metabox.php:61
     125#: includes/Metabox.php:63
     126#: includes/Metabox.php:155
     127#: includes/Metabox.php:157
     128msgid "Disabled"
     129msgstr ""
     130
     131#: includes/Metabox.php:74
     132msgid "301 Permanent Redirect"
     133msgstr ""
     134
     135#: includes/Metabox.php:75
     136msgid "302 Temporary Redirect"
     137msgstr ""
     138
     139#: includes/Metabox.php:76
     140msgid "307 Temporary Redirect"
     141msgstr ""
     142
     143#: includes/Metabox.php:81
     144msgid "Slug*"
     145msgstr ""
     146
     147#: includes/Metabox.php:88
     148msgid "<a href=\"#\" id=\"copy_url\">Copy</a><p>The url to link to in your content.</p>"
     149msgstr ""
     150
     151#: includes/Metabox.php:92
     152msgid "Target URL*"
     153msgstr ""
     154
     155#: includes/Metabox.php:98
     156msgid "The target (affiliate) link."
     157msgstr ""
     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
     163msgid "Order"
     164msgstr ""
     165
     166#: includes/Metabox.php:110
     167msgid "The order for the link, used when displaying all links of a tag or category"
     168msgstr ""
     169
     170#: includes/Metabox.php:116
     171msgid "Link Prefix"
     172msgstr ""
     173
     174#: includes/Metabox.php:120
     175msgid "The prefix for your link, for example <i>go, recommends, out, link, affiliate</i>. The link will look like <b>%1$sprefix/slug</b>."
     176msgstr ""
     177
     178#: includes/Metabox.php:124
     179msgid "Mimimum Role Linkmanagement"
     180msgstr ""
     181
     182#: includes/Metabox.php:127
     183msgid "Administrator"
     184msgstr ""
     185
     186#: includes/Metabox.php:128
     187msgid "Editor"
     188msgstr ""
     189
     190#: includes/Metabox.php:129
     191msgid "Author"
     192msgstr ""
     193
     194#: includes/Metabox.php:130
     195msgid "Contributor"
     196msgstr ""
     197
     198#: includes/Metabox.php:131
     199msgid "Subscriber"
     200msgstr ""
     201
     202#: includes/Metabox.php:134
     203msgid "The minimum role a user needs in order to create, edit or delete LinkGenius Links. The settings page will remain visible for administrators only."
     204msgstr ""
     205
     206#: includes/Metabox.php:138
     207msgid "Defaults"
     208msgstr ""
     209
     210#: includes/Metabox.php:140
     211msgid "Intro default general setings"
     212msgstr ""
     213
     214#: includes/Metabox.php:145
     215msgid "Redirect Type"
     216msgstr ""
     217
     218#: includes/Metabox.php:161
     219msgid "No Cloaking"
     220msgstr ""
     221
     222#: includes/Metabox.php:163
     223msgid "When checked affiliate url of LinkGenius Links will be outputted in content instead of the slug."
     224msgstr ""
     225
     226#: includes/Metabox.php:174
     227msgid "Intro text appearance"
     228msgstr ""
     229
     230#: includes/Metabox.php:177
     231msgid "Global CSS Classes"
     232msgstr ""
     233
     234#: includes/Metabox.php:177
     235msgid "CSS Classes"
     236msgstr ""
     237
     238#: includes/Metabox.php:180
     239msgid "Comma separated list of CSS classes"
     240msgstr ""
     241
     242#: includes/Metabox.php:183
     243msgid "Open in New Tab"
     244msgstr ""
     245
     246#: includes/Metabox.php:185
     247msgid "Open the URL in a new tab when clicked. Done by adding target=\"_blank\" tag."
     248msgstr ""
     249
     250#: includes/Metabox.php:188
     251msgid "Parameter Forwarding"
     252msgstr ""
     253
     254#: includes/Metabox.php:192
     255msgid "Sponsored Attribute"
     256msgstr ""
     257
     258#: includes/Metabox.php:196
     259msgid "Nofollow Attribute"
     260msgstr ""
     261
     262#: includes/Metabox.php:201
     263msgid "Global Additional Rel Tags"
     264msgstr ""
     265
     266#: includes/Metabox.php:201
     267msgid "Additional Rel Tags"
     268msgstr ""
     269
     270#: includes/Metabox.php:204
     271msgid "Comma separated list of additional rel tags"
     272msgstr ""
     273
     274#: includes/Metabox.php:213
     275msgid "Default Link appearance"
     276msgstr ""
     277
     278#: includes/Metabox.php:214
     279#: includes/Metabox.php:244
     280#: includes/Metabox.php:394
     281msgid "Default settings, can be overriden per individual link."
     282msgstr ""
     283
     284#: includes/Metabox.php:228
     285msgid "None"
     286msgstr ""
     287
     288#: includes/Metabox.php:229
     289msgid "Tooltip"
     290msgstr ""
     291
     292#: includes/Metabox.php:230
     293#: includes/Metabox.php:270
     294#: includes/Metabox.php:312
     295msgid "Text After Link"
     296msgstr ""
     297
     298#: includes/Metabox.php:231
     299msgid "Content Statement"
     300msgstr ""
     301
     302#: includes/Metabox.php:236
     303msgid "Intro text disclosure"
     304msgstr ""
     305
     306#: includes/Metabox.php:243
     307msgid "Default disclosure settings"
     308msgstr ""
     309
     310#: includes/Metabox.php:249
     311msgid "Disclosure Type"
     312msgstr ""
     313
     314#: includes/Metabox.php:263
     315msgid "Default Disclosure Tooltip"
     316msgstr ""
     317
     318#: includes/Metabox.php:266
     319msgid "default_tooltip_desc"
     320msgstr ""
     321
     322#: includes/Metabox.php:279
     323msgid "Content disclosure settings"
     324msgstr ""
     325
     326#: includes/Metabox.php:282
     327msgid "Content Disclosure Location"
     328msgstr ""
     329
     330#: includes/Metabox.php:286
     331msgid "End of Post"
     332msgstr ""
     333
     334#: includes/Metabox.php:287
     335msgid "Beginning of Post"
     336msgstr ""
     337
     338#: includes/Metabox.php:288
     339msgid "Custom (Via Shortcode or Action)"
     340msgstr ""
     341
     342#: includes/Metabox.php:293
     343msgid "Content Disclosure Text"
     344msgstr ""
     345
     346#: includes/Metabox.php:302
     347msgid "Disclosure Text"
     348msgstr ""
     349
     350#: includes/Metabox.php:306
     351#: includes/Metabox.php:317
     352msgid "Default: %s"
     353msgstr ""
     354
     355#: includes/Metabox.php:315
     356msgid "after_link_text_desc"
     357msgstr ""
     358
     359#: includes/Metabox.php:345
     360msgid "Tracking Configuration"
     361msgstr ""
     362
     363#: includes/Metabox.php:346
     364msgid "Tracking api description"
     365msgstr ""
     366
     367#: includes/Metabox.php:349
     368msgid "Tracking Method"
     369msgstr ""
     370
     371#: includes/Metabox.php:353
     372msgid "Javascript"
     373msgstr ""
     374
     375#: includes/Metabox.php:354
     376msgid "Serverside Api"
     377msgstr ""
     378
     379#: includes/Metabox.php:357
     380msgid "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."
     381msgstr ""
     382
     383#: includes/Metabox.php:360
     384msgid "GA4 Measurement ID"
     385msgstr ""
     386
     387#: includes/Metabox.php:366
     388msgid "GA4 Api Secret"
     389msgstr ""
     390
     391#: includes/Metabox.php:372
     392msgid "Linkgenius Cookie Fallback"
     393msgstr ""
     394
     395#: includes/Metabox.php:377
     396msgid "<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>"
     397msgstr ""
     398
     399#: includes/Metabox.php:382
     400msgid "Don't track bots"
     401msgstr ""
     402
     403#: includes/Metabox.php:393
     404msgid "Default GA tracking settings"
     405msgstr ""
     406
     407#: includes/Metabox.php:401
     408msgid "Intro text GA tracking"
     409msgstr ""
     410
     411#: includes/Metabox.php:410
     412msgid "Event Name"
     413msgstr ""
     414
     415#: includes/Metabox.php:416
     416msgid "Event Parameters"
     417msgstr ""
     418
     419#: includes/Metabox.php:420
     420msgid "You can use the variables %cloaked_url%, %target_url%, %categories%, %tags% and %referrer%"
     421msgstr ""
     422
     423#: includes/Metabox.php:434
    50424msgid "Intro text autolink"
    51425msgstr ""
    52426
    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
     428msgid "A lower order means earlier execution when dealing with conflicting keywords or urls"
     429msgstr ""
     430
     431#: includes/Metabox.php:449
    64432msgid "Keywords"
    65433msgstr ""
    66434
    67 #: includes/CPT.php:305
     435#: includes/Metabox.php:452
    68436msgid "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."
    69437msgstr ""
    70438
    71 #: includes/CPT.php:309
     439#: includes/Metabox.php:455
    72440msgid "URLs"
    73441msgstr ""
    74442
    75 #: includes/CPT.php:312
     443#: includes/Metabox.php:458
    76444msgid "Enter URLs that will automatically be replaced with this LinkGenius link. One url per line."
    77445msgstr ""
    78446
    79 #: includes/CPT.php:319
    80 msgid "Link Expiration (Pro)"
    81 msgstr ""
    82 
    83 #: includes/CPT.php:329
     447#: includes/Metabox.php:473
    84448msgid "Intro text expiration"
    85449msgstr ""
    86450
    87 #: includes/CPT.php:333
     451#: includes/Metabox.php:476
    88452msgid "Expiration Date"
    89453msgstr ""
    90454
    91 #: includes/CPT.php:336
     455#: includes/Metabox.php:479
    92456msgid "Date after which link expires. (optional)"
    93457msgstr ""
    94458
    95 #: includes/CPT.php:340
     459#: includes/Metabox.php:482
    96460msgid "Expiration Clicks"
    97461msgstr ""
    98462
    99 #: includes/CPT.php:349
     463#: includes/Metabox.php:491
    100464msgid "Number of clicks after which the link expires. (optional)"
    101465msgstr ""
    102466
    103 #: includes/CPT.php:353
     467#: includes/Metabox.php:500
    104468msgid "Redirect After Expiry"
    105469msgstr ""
    106470
    107 #: includes/CPT.php:356
     471#: includes/Metabox.php:503
    108472msgid "The url to redirect to after link expired (used only if date or clicks are set)."
    109473msgstr ""
    110474
    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
    370477msgid "Settings"
    371478msgstr ""
    372479
    373 #: includes/Settings.php:65
     480#: includes/Settings.php:72
    374481msgid "General"
    375482msgstr ""
    376483
    377 #: includes/Settings.php:80
     484#: includes/Settings.php:87
     485#: includes/Settings.php:93
    378486msgid "Appearance"
    379487msgstr ""
    380488
    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
    387491msgid "Disclosure"
    388492msgstr ""
    389493
    390 #: includes/Settings.php:124
    391 msgid "Link Tracking"
    392 msgstr ""
    393 
    394 #: includes/Settings.php:130
    395 msgid "Tracking"
     494#: includes/Settings.php:206
     495msgid "Affiliate Link"
     496msgstr ""
     497
     498#: includes/Settings.php:207
     499msgid " (Affiliate Link)"
    396500msgstr ""
    397501
    398502#: includes/Settings.php:209
    399 msgid "Affiliate Link"
    400 msgstr ""
    401 
    402 #: includes/Settings.php:210
    403 msgid " (Affiliate Link)"
    404 msgstr ""
    405 
    406 #: includes/Settings.php:212
    407503msgid "default_content_disclosure_text"
    408504msgstr ""
    409505
    410 #: includes/Shortcode.php:103
     506#: includes/Shortcode.php:59
    411507msgid "You must specify a category or tag"
    412508msgstr ""
    413509
    414510#: assets/app/src/linkgenius-block.js:39
    415 #: assets/js/editor.js:78
     511#: assets/js/editor/editor.js:2
    416512msgid "No LinkGenius Link Selected"
    417513msgstr ""
    418514
    419 #: assets/app/src/linkgenius-block.js:52
    420 #: assets/js/editor.js:91
     515#: assets/app/src/linkgenius-block.js:51
     516#: assets/js/editor/editor.js:2
    421517msgid "Edit LinkGenius Link"
    422518msgstr ""
    423519
    424 #: assets/app/src/linkgenius-block.js:52
    425 #: assets/js/editor.js:91
     520#: assets/app/src/linkgenius-block.js:51
     521#: assets/js/editor/editor.js:2
    426522msgid "Preview LinkGenius Link"
    427523msgstr ""
    428524
     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
     529msgid "LinkGenius Link"
     530msgstr ""
     531
    429532#: 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
    438534msgid "Text"
    439535msgstr ""
    440536
    441 #: assets/app/src/linkgenius-block.js:64
    442 #: assets/js/editor.js:105
     537#: assets/app/src/linkgenius-block.js:63
     538#: assets/js/editor/editor.js:2
    443539msgid "Link"
    444540msgstr ""
    445541
    446542#: assets/app/src/linkgenius-link-format.js:64
    447 #: assets/js/editor.js:304
     543msgid "Remove LinkGenius Link"
     544msgstr ""
     545
     546#: assets/app/src/linkgenius-link-selector.js:75
     547#: assets/js/editor/editor.js:2
     548msgid "No link selected"
     549msgstr ""
     550
     551#: assets/app/src/linkgenius-link-selector.js:77
     552#: assets/js/editor/editor.js:2
     553msgid "Edit"
     554msgstr ""
     555
     556#: assets/app/src/linkgenius-taxonomy-selector.js:47
     557#: assets/js/editor/editor.js:2
     558msgid "Edit LinkGenius List"
     559msgstr ""
     560
     561#: assets/app/src/linkgenius-taxonomy-selector.js:47
     562#: assets/js/editor/editor.js:2
     563msgid "Preview LinkGenius List"
     564msgstr ""
     565
     566#: assets/app/src/linkgenius-taxonomy-selector.js:60
     567#: assets/js/editor/editor.js:2
     568msgid "LinkGenius Category List"
     569msgstr ""
     570
     571#: assets/app/src/linkgenius-taxonomy-selector.js:60
     572#: assets/js/editor/editor.js:2
     573msgid "LinkGenius Tag List"
     574msgstr ""
     575
     576#: assets/app/src/linkgenius-taxonomy-selector.js:62
     577#: assets/js/editor/editor.js:2
     578msgid "Category"
     579msgstr ""
     580
     581#: assets/app/src/linkgenius-taxonomy-selector.js:62
     582#: assets/js/editor/editor.js:2
     583msgid "Tag"
     584msgstr ""
     585
     586#: assets/app/src/linkgenius-taxonomy-selector.js:70
     587#: assets/js/editor/editor.js:2
     588msgid "Sort By"
     589msgstr ""
     590
     591#: assets/app/src/linkgenius-taxonomy-selector.js:73
     592#: assets/js/editor/editor.js:2
     593msgid "Title"
     594msgstr ""
     595
     596#: assets/app/src/linkgenius-taxonomy-selector.js:77
     597#: assets/js/editor/editor.js:2
     598msgid "Template or seperator"
     599msgstr ""
     600
     601#: assets/app/src/linkgenius-taxonomy-selector.js:78
     602#: assets/js/editor/editor.js:2
     603msgid "If {links}{link}{/links} is not found value is treated as seperator. For example, Set to \", \" to make links comma seperated"
     604msgstr ""
     605
     606#: assets/app/src/linkgenius-taxonomy-selector.js:127
     607#: assets/js/editor/editor.js:2
     608msgid "No LinkGenius links found"
     609msgstr ""
     610
     611#: assets/js/editor/editor.js:2
    448612msgid "Remove All Affiliate Link"
    449613msgstr ""
    450614
    451 #: assets/app/src/linkgenius-link-format.js:76
    452 #: assets/js/editor.js:309
     615#: assets/js/editor/editor.js:2
    453616msgid "All Affiliate Link"
    454617msgstr ""
    455 
    456 #: assets/app/src/linkgenius-link-selector.js:76
    457 #: assets/js/editor.js:465
    458 msgid "No link selected"
    459 msgstr ""
    460 
    461 #: assets/app/src/linkgenius-link-selector.js:78
    462 #: assets/js/editor.js:467
    463 msgid "Edit"
    464 msgstr ""
    465 
    466 #: assets/app/src/linkgenius-taxonomy-selector.js:47
    467 #: assets/js/editor.js:731
    468 msgid "Edit LinkGenius List"
    469 msgstr ""
    470 
    471 #: assets/app/src/linkgenius-taxonomy-selector.js:47
    472 #: assets/js/editor.js:731
    473 msgid "Preview LinkGenius List"
    474 msgstr ""
    475 
    476 #: assets/app/src/linkgenius-taxonomy-selector.js:60
    477 #: assets/js/editor.js:745
    478 msgid "LinkGenius Category List"
    479 msgstr ""
    480 
    481 #: assets/app/src/linkgenius-taxonomy-selector.js:60
    482 #: assets/js/editor.js:745
    483 msgid "LinkGenius Tag List"
    484 msgstr ""
    485 
    486 #: assets/app/src/linkgenius-taxonomy-selector.js:62
    487 #: assets/js/editor.js:745
    488 msgid "Category"
    489 msgstr ""
    490 
    491 #: assets/app/src/linkgenius-taxonomy-selector.js:62
    492 #: assets/js/editor.js:745
    493 msgid "Tag"
    494 msgstr ""
    495 
    496 #: assets/app/src/linkgenius-taxonomy-selector.js:70
    497 #: assets/js/editor.js:755
    498 msgid "Sort By"
    499 msgstr ""
    500 
    501 #: assets/app/src/linkgenius-taxonomy-selector.js:73
    502 #: assets/js/editor.js:760
    503 msgid "Title"
    504 msgstr ""
    505 
    506 #: assets/app/src/linkgenius-taxonomy-selector.js:77
    507 #: assets/js/editor.js:769
    508 msgid "Template or seperator"
    509 msgstr ""
    510 
    511 #: assets/app/src/linkgenius-taxonomy-selector.js:78
    512 #: assets/js/editor.js:771
    513 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:126
    517 msgid "No LinkGenius links found"
    518 msgstr ""
    519 
    520 #: assets/js/editor.js:867
    521 msgid "No LinkGenie links found"
    522 msgstr ""
  • linkgenius/tags/1.1.0/linkgenius.php

    r2967528 r2969592  
    44Plugin URI: https://all-affiliates.com/linkgenius/
    55Description: 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.1
     6Version: 1.1.0
    77Author: all-affiliates.com
    88Author URI: https://all-affiliates.com
     
    2727}
    2828
    29 // // Include necessary files and classes
     29// Include necessary files and classes
    3030require_once plugin_dir_path(__FILE__). 'vendor/cmb2/cmb2/init.php';
    3131require_once plugin_dir_path(__FILE__). 'vendor/jcchavezs/cmb2-conditionals/cmb2-conditionals.php';
     
    6161    // Perform deactivation tasks if needed
    6262}
    63 
    64 // /**
    65 //  * Undocumented function
    66 //  *
    67 //  * @param CMB2 $arg
    68 //  * @return void
    69 //  */
    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 ===
    22Contributors: 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
     3Tags: 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
    44Donate link: https://all-affiliates.com/linkgenius/
    55Requires at least: 6.2
    66Tested up to: 6.3.1
    77Requires PHP: 8.0
    8 Stable tag: 1.0.1
     8Stable tag: 1.1.0
    99License: GPL2
    1010License URI: http://www.gnu.org/licenses/gpl-2.0.html
    1111
    1212== Description ==
     13**Manage your affiliate links with genius precision.**
     14
    1315LinkGenius 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 new level of efficiency.
     16Ensuring a seamless user experience while complying with FTC guidelines and unlocking a new genius level of efficiency.
    1517Let’s take a closer look at what LinkGenius has to offer:
    1618
    1719
    1820= 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 =
     21Easily 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 =
    2123Display 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.
    2224= Customizable link appearance =
     
    2426= Affiliate disclosure =
    2527Maintain 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 =
     29Enhance 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.
    2830= Multiple Redirect Types = Take full control over how your users are redirected, including 301 (Permanent), 302 (Temporary), 307 (Temporary) redirects.
    2931
    3032= 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.
     33While 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.
    3234- 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.
    3436- 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.
    3638- 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.
    3740
    3841== Installation ==
     
    6871Yes, 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.
    6972
    70 = What is link cloaking, and why should I use it? =
     73= What is link branding/cloaking, and why should I use it? =
    7174
    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.
     75Link 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.
    7376
    7477= How can I track the performance of my affiliate links? =
     
    8588
    8689== 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
    8796
    8897= 1.0.1 =
  • linkgenius/trunk/assets/css/tooltip.css

    r2967528 r2969592  
    66/* linkgenius-tooltip text */
    77.linkgenius-tooltip .linkgenius-tooltiptext {
     8    position: absolute;
    89    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;
    1016    background-color: black;
    1117    color: #fff;
    1218    text-align: center;
    13     padding: 5px 0;
    1419    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;   
    2122}
    2223
     
    3536.linkgenius-tooltip:hover .linkgenius-tooltiptext {
    3637    visibility: visible;
     38    opacity: 1;
    3739}
  • linkgenius/trunk/assets/js/linkgenius-posttype.js

    r2967528 r2969592  
    1313      });
    1414    })
     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    });
    1548});
  • linkgenius/trunk/includes/CPT.php

    r2967528 r2969592  
    55
    66class 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';
    1010
    1111    private function __construct() {
     
    5656            'not_found_in_trash' => __( 'No LinkGenius Links found in Trash.', 'text-domain' ),
    5757        );
    58 
     58        $role = Settings::instance()->get_settings()['general_role'];
    5959        $args = array(
    6060            'labels'             => $labels,
     
    7171            'menu_position'      => null,
    7272            '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            ),
    7491        );
    7592        if(get_option('linkgenius_should_flush', false)) {
     
    102119        );
    103120
     121        $role = Settings::instance()->get_settings()['general_role'];
    104122        $args = array(
    105123            'labels'                     => $labels,
    106124            'hierarchical'               => true,
    107             'public'                     => true,
     125            'public'                     => false,
     126            'show_ui'                    => true,
    108127            'show_admin_column'          => true,
    109128            'show_in_nav_menus'          => true,
    110129            '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            )
    114138        );
    115139
     
    139163        );
    140164
     165        $role = Settings::instance()->get_settings()['general_role'];
    141166        $args = array(
    142167            'labels'                     => $labels,
    143168            'hierarchical'               => false,
    144             'public'                     => true,
     169            'public'                     => false,
     170            'show_ui'                    => true,
    145171            'show_admin_column'          => true,
    146172            'show_in_nav_menus'          => true,
    147173            'show_tagcloud'              => true,
    148             'rewrite'                    => array( 'slug' => __( 'linkgenius-tag', 'text-domain' ) ),
     174            'rewrite'                    => false,
    149175            'show_in_rest'               => true,
     176            'capabilities'      => array(
     177                'manage_terms' => $role,
     178                'edit_terms'   => $role,
     179                'delete_terms' => $role,
     180                'assign_terms' => $role
     181            )
    150182        );
    151183
     
    280312            'classes'      => 'linkgenius-pro'
    281313        ));
    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        }
    315318        $autolink_metabox = apply_filters("linkgenius_link_metabox", $autolink_metabox);
    316319
     
    324327            'classes'      => 'linkgenius-pro'
    325328        ));
    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        }
    363333        $expiration_metabox = apply_filters("linkgenius_link_metabox", $expiration_metabox);
    364334
     
    382352            'id'          => 'geolocation_redirects',
    383353            'type'        => 'group',
    384             'description' => __('Geolocation Redirects', 'linkgenius'),
     354            'description' => __('Geolocation Rules', 'linkgenius'),
    385355            'repeatable'  => true,
    386356            'options'     => array(
     
    398368
    399369        $geolocation_metabox->add_group_field($geolocation_redirects_group, array(
    400             'name' => __('Affiliate URL', 'linkgenius'),
    401             'id'   => 'affiliate_url',
     370            'name' => __('Target URL', 'linkgenius'),
     371            'id'   => 'target_url',
    402372            'type' => 'text_url',
    403373        ));
    404374        $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
    405418
    406419        // GA Link Tracking Metabox
     
    413426            'classes'      => 'linkgenius-pro'
    414427        ));
    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();
    422429        foreach($fields as $field) {
    423430            $ga_tracking_metabox->add_field($field);
     
    476483    public static function instance() {
    477484        static $instance = null;
    478         if($instance == null)
    479             $instance = new self();
     485        if($instance == null) {
     486            $instance = new static();
     487        }
    480488        return $instance;
    481489    }
  • linkgenius/trunk/includes/Discloser.php

    r2967528 r2969592  
    6969    public static function instance() {
    7070        static $instance = null;
    71         if($instance == null)
    72             $instance = new self();
     71        if($instance == null) {
     72            $instance = new static();
     73        }
    7374        return $instance;
    7475    }
  • linkgenius/trunk/includes/Editor.php

    r2967528 r2969592  
    77    function __construct()
    88    {
    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         });
    159        add_filter( 'block_categories_all', [$this, 'add_linkgenius_link_block_category']);
    1610        // enqueue scripts and styles for the editor
     
    4337                array(
    4438                    'slug' => 'linkgenius',
    45                     'title' => 'All Affiliate Links',
     39                    'title' => 'LinkGenius Links',
    4640                ),
    4741            ),
     
    4943        );
    5044    }
    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     // }
    6245   
    6346    //
     
    125108            );
    126109            $query = new WP_Query( $args );
    127             // @header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );
    128110       
    129111            $links = array_map(fn($post) => [
     
    153135            $shortcode = "[linkgenius-list ".$_GET['taxonomy']."=".sanitize_title($_GET['item_slug'])." sort=".$_GET['sort']."]".wp_kses_post($_GET['template'])."[/linkgenius-list]";
    154136            $preview = do_shortcode($shortcode);
    155             // @header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );
    156137            wp_send_json_success( $preview);
    157138        }
  • linkgenius/trunk/includes/Metabox.php

    r2967528 r2969592  
    55class Metabox
    66{
     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
    769    public function get_general_fields($for_settings = false)
    870    {
     
    2486                ),
    2587                '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'),
    2789                'sanitization_cb' => 'sanitize_title'
    2890            );
     
    54116                'name'              => __('Link Prefix', 'linkgenius'),
    55117                'type'              => 'text',
    56                 'default'           => 'go',
     118                'default'           => Settings::$DEFAULTS['general']['general_prefix'] ?? "go",
    57119                'sanitization_cb'   => 'sanitize_title',
    58120                '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')
    59135            );
    60136            $fields[] = array(
     
    92168    public function get_link_appearance_fields($for_settings = false)
    93169    {
    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         };
    112170        $fields = array(
    113171            array(
     
    122180                'desc' => __('Comma separated list of CSS classes', 'linkgenius')
    123181            ),
    124             $add_check_options(array(
     182            $this->add_check_options(array(
    125183                'name' => __('Open in New Tab', 'linkgenius'),
    126184                'id'   => 'appearance_new_tab',
    127185                '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(
    130188                'name' => __('Parameter Forwarding', 'linkgenius'),
    131189                'id'   => 'appearance_parameter_forwarding'
    132             )),
    133             $add_check_options(array(
     190            ), $for_settings),
     191            $this->add_check_options(array(
    134192                'name' => __('Sponsored Attribute', 'linkgenius'),
    135193                'id'   => 'appearance_sponsored_attribute'
    136             )),
    137             $add_check_options(array(
     194            ), $for_settings),
     195            $this->add_check_options(array(
    138196                'name' => __('Nofollow Attribute', 'linkgenius'),
    139197                'id'   => 'appearance_nofollow_attribute'
    140             ))
     198            ), $for_settings)
    141199        );
    142200        $rel_tags = array(
     
    271329        $fields = array();
    272330        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            ));
    273387            $fields[] = array(
    274388                'id'   => 'tracking_defaults_title',
     
    278392            );
    279393        }
     394        else {
     395            $fields[] = array(
     396                'id'   => 'tracking_title',
     397                'type' => 'title',
     398                'desc' => __('Intro text GA tracking', 'linkgenius')
     399            );
     400        }
    280401        $fields = array_merge($fields, array(
    281             array(
     402            $this->add_check_options(array(
    282403                '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),
    287406            array(
    288407                'name' => __('Event Name', 'linkgenius'),
     
    295414                'id'      => 'tracking_parameters',
    296415                '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')
    298418            )
    299419        ));
    300420        return $fields;
    301421    }
     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    }
    302509}
     510
     511add_action( 'cmb2_render_clicks', [new Metabox(), 'cmb2_render_callback_for_clicks'], 10, 5 );
  • linkgenius/trunk/includes/Redirect.php

    r2967528 r2969592  
    1818        if ($post && 'linkgenius_link' === $post->post_type) {
    1919            $data = get_post_meta($post->ID);
    20             $data = apply_filters('linkgenius_links/before_redirect', $data);
    21             if ($data === null) {
     20            if ($data === false) {
    2221                return false;
    2322            }
    2423            $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);
    2625            if(empty($data['general_target_url'])) {
    2726                return false;
     
    6059            wp_redirect( $target_url, intval($redirect_type));
    6160            flush();
    62             do_action("linkgenius_after_redirect", $data);
     61            do_action("linkgenius_after_redirect", $data, $post->ID);
    6362            exit();
    6463        }
  • linkgenius/trunk/includes/Settings.php

    r2967528 r2969592  
    3232        }
    3333
    34         // Highlight the Settings submenu item when on the Settings2 page
    35         if (
     34        // Highlight the Settings submenu item when on one of the settings pages
     35        if ( // Is this a settings page
    3636            isset($_GET['page']) && str_starts_with($_GET['page'], self::OPTIONS_PREFIX)
    3737            && isset($_GET['post_type']) && $_GET['post_type'] === CPT::TYPE_LINK
     
    4343                }
    4444            }
    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);
    4653    }
    4754
     
    121128    {
    122129        static $instance = null;
    123         if($instance == null)
    124             $instance = new self();
     130        if($instance == null) {
     131            $instance = new static();
     132        }
    125133        return $instance;
    126134    }
     
    146154     *     - 'disclosure_statement': The disclosure statement to use.
    147155     *   - '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.
    148159     */
    149160    public function get_settings()
     
    171182
    172183    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']) {
    174185            add_option('linkgenius_should_flush', true);
    175186        }
    176         var_dump($old_val);
    177187    }
    178188}
     
    180190    'general' => [
    181191        'general_prefix' => "out",
     192        'general_role' => 'manage_options',
    182193        'general_redirect_type' => '301',
    183194        'general_uncloak' => false,
     
    199210    ],
    200211    'tracking' => [
    201         'tracking_enabled' => '1',
     212        'tracking_enabled' => '0',
    202213        'tracking_name' => 'linkgenius',
    203214        'tracking_parameters' => "'category': '%category%'\r\n'url':'%url%'"
  • linkgenius/trunk/includes/Shortcode.php

    r2967528 r2969592  
    33
    44class Shortcode {
    5     private $has_tooltip = false;
    65    function __construct()
    76    {
     
    98        add_shortcode('linkgenius-link', array($this, 'linkgenius_link_shortcode'));
    109        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       }
    1810    }
    1911
     
    2416     
    2517        $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";
    8519    }
    8620   
     
    13872          foreach($links as $link) {
    13973            $output .= $prelink.
    140                 $this->linkgenius_link_shortcode(array('id' => $link->ID), $link->post_title)
     74                LinkBuilder::instance()->get_link($link->ID, $link->post_title)
    14175                .$postlink;
    14276          }
     
    14579        }
    14680        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));
    14882        }
    14983        return $output;
  • linkgenius/trunk/languages/linkgenius-fallback.po

    r2967528 r2969592  
    3434msgstr ""
    3535
    36 #: includes/CPT.php:248
     36#: includes/CPT.php:280
    3737msgid "Link Appearance"
    3838msgstr ""
    3939
    40 #: includes/CPT.php:262
     40#: includes/CPT.php:294
    4141msgid "Link Disclosure"
    4242msgstr ""
    4343
    44 #: includes/CPT.php:276
     44#: includes/CPT.php:308
    4545msgid "Auto Link (Pro)"
    4646msgstr ""
    4747
    48 #: includes/CPT.php:286
     48#: includes/Metabox.php:434
    4949msgid "Intro text autolink"
    5050msgstr "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."
    5151
    52 #: includes/CPT.php:290
     52#: includes/Metabox.php:101
     53#: includes/Metabox.php:437
    5354#: assets/app/src/linkgenius-taxonomy-selector.js:72
    54 #: assets/js/editor.js:757
     55#: assets/js/editor/editor.js:2
    5556msgid "Order"
    5657msgstr ""
    5758
    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
    6360msgid "Keywords"
    6461msgstr ""
    6562
    66 #: includes/CPT.php:305
     63#: includes/Metabox.php:452
    6764msgid "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."
    6865msgstr ""
    6966
    70 #: includes/CPT.php:309
     67#: includes/Metabox.php:455
    7168msgid "URLs"
    7269msgstr ""
    7370
    74 #: includes/CPT.php:312
     71#: includes/Metabox.php:458
    7572msgid "Enter URLs that will automatically be replaced with this LinkGenius link. One url per line."
    7673msgstr ""
    7774
    78 #: includes/CPT.php:329
     75#: includes/Metabox.php:473
    7976msgid "Intro text expiration"
    8077msgstr "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."
    8178
    82 #: includes/CPT.php:336
     79#: includes/Metabox.php:479
    8380msgid "Date after which link expires. (optional)"
    8481msgstr ""
    8582
    86 #: includes/CPT.php:340
     83#: includes/Metabox.php:482
    8784msgid "Expiration Clicks"
    8885msgstr ""
    8986
    90 #: includes/CPT.php:349
     87#: includes/Metabox.php:491
    9188msgid "Number of clicks after which the link expires. (optional)"
    9289msgstr ""
    9390
    94 #: includes/CPT.php:353
     91#: includes/Metabox.php:500
    9592msgid "Redirect After Expiry"
    9693msgstr ""
    9794
    98 #: includes/CPT.php:356
     95#: includes/Metabox.php:503
    9996msgid "The url to redirect to after link expired (used only if date or clicks are set)."
    10097msgstr ""
    10198
    102 #: includes/CPT.php:367
     99#: includes/CPT.php:338
    103100msgid "Geolocation Redirects (Pro)"
    104101msgstr ""
    105102
    106 #: includes/CPT.php:377
     103#: includes/CPT.php:348
    107104msgid "Intro text Geolocation"
    108105msgstr "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."
    109106
    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
    115109msgid "Redirect {#}"
    116110msgstr ""
    117111
    118 #: includes/CPT.php:387
     112#: includes/CPT.php:358
     113#: includes/CPT.php:400
    119114msgid "Add Another Redirect"
    120115msgstr ""
    121116
    122 #: includes/CPT.php:388
     117#: includes/CPT.php:359
     118#: includes/CPT.php:401
    123119msgid "Remove Redirect"
    124120msgstr ""
    125121
    126 #: includes/CPT.php:393
     122#: includes/CPT.php:364
    127123msgid "Country Code"
    128124msgstr ""
    129125
    130 #: includes/CPT.php:399
    131 msgid "Affiliate URL"
    132 msgstr ""
    133 
    134 #: includes/CPT.php:408
     126#: includes/CPT.php:422
    135127msgid "GA Link Tracking (Pro)"
    136128msgstr ""
    137129
    138 #: includes/Editor.php:84
    139 msgid "Missing required post data"
    140 msgstr ""
    141 
    142 #: includes/Metabox.php:12
     130#: includes/Metabox.php:74
    143131msgid "301 Permanent Redirect"
    144132msgstr ""
    145133
    146 #: includes/Metabox.php:13
     134#: includes/Metabox.php:75
    147135msgid "302 Temporary Redirect"
    148136msgstr ""
    149137
    150 #: includes/Metabox.php:14
     138#: includes/Metabox.php:76
    151139msgid "307 Temporary Redirect"
    152140msgstr ""
    153141
    154 #: includes/Metabox.php:17
    155 #: includes/Metabox.php:78
    156 #: includes/Metabox.php:104
    157 #: includes/Metabox.php:170
     142#: includes/Metabox.php:61
     143#: includes/Metabox.php:79
     144#: includes/Metabox.php:155
     145#: includes/Metabox.php:253
    158146msgid "Default (%s)"
    159147msgstr ""
    160148
    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
    166150msgid "Target URL*"
    167151msgstr ""
    168152
    169 #: includes/Metabox.php:36
     153#: includes/Metabox.php:98
    170154msgid "The target (affiliate) link."
    171155msgstr ""
    172156
    173 #: includes/Metabox.php:39
    174 msgid "Order*"
    175 msgstr ""
    176 
    177 #: includes/Metabox.php:47
     157#: includes/Metabox.php:110
    178158msgid "The order for the link, used when displaying all links of a tag or category"
    179159msgstr ""
    180160
    181 #: includes/Metabox.php:53
     161#: includes/Metabox.php:116
    182162msgid "Link Prefix"
    183163msgstr ""
    184164
    185 #: includes/Metabox.php:57
     165#: includes/Metabox.php:120
    186166msgid "The prefix for your link, for example <i>go, recommends, out, link, affiliate</i>. The link will look like <b>%1$sprefix/slug</b>."
    187167msgstr ""
    188168
     169#: includes/Metabox.php:138
     170msgid "Defaults"
     171msgstr ""
     172
     173#: includes/Metabox.php:140
     174msgid "Intro default general setings"
     175msgstr ""
     176
     177#: includes/Metabox.php:145
     178msgid "Redirect Type"
     179msgstr ""
     180
    189181#: 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
     186msgid "Enabled"
     187msgstr ""
     188
     189#: includes/Metabox.php:61
    193190#: 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
    213193msgid "Disabled"
    214194msgstr ""
    215195
    216 #: includes/Metabox.php:84
     196#: includes/Metabox.php:161
    217197msgid "No Cloaking"
    218198msgstr ""
    219199
    220 #: includes/Metabox.php:86
     200#: includes/Metabox.php:163
    221201msgid "When checked affiliate url of LinkGenius Links will be outputted in content instead of the slug."
    222202msgstr ""
    223203
    224 #: includes/Metabox.php:115
     204#: includes/Metabox.php:213
    225205msgid "Default Link appearance"
    226206msgstr ""
    227207
    228 #: includes/Metabox.php:116
     208#: includes/Metabox.php:174
    229209msgid "Intro text appearance"
    230210msgstr "Determine how the link will appear in your content."
    231211
    232 #: includes/Metabox.php:119
     212#: includes/Metabox.php:177
    233213msgid "Global CSS Classes"
    234214msgstr ""
    235215
    236 #: includes/Metabox.php:119
     216#: includes/Metabox.php:177
    237217msgid "CSS Classes"
    238218msgstr ""
    239219
    240 #: includes/Metabox.php:122
     220#: includes/Metabox.php:180
    241221msgid "Comma separated list of CSS classes"
    242222msgstr ""
    243223
    244 #: includes/Metabox.php:125
     224#: includes/Metabox.php:183
    245225msgid "Open in New Tab"
    246226msgstr ""
    247227
    248 #: includes/Metabox.php:127
     228#: includes/Metabox.php:185
    249229msgid "Open the URL in a new tab when clicked. Done by adding target=\"_blank\" tag."
    250230msgstr ""
    251231
    252 #: includes/Metabox.php:130
     232#: includes/Metabox.php:188
    253233msgid "Parameter Forwarding"
    254234msgstr ""
    255235
    256 #: includes/Metabox.php:134
     236#: includes/Metabox.php:192
    257237msgid "Sponsored Attribute"
    258238msgstr ""
    259239
    260 #: includes/Metabox.php:138
     240#: includes/Metabox.php:196
    261241msgid "Nofollow Attribute"
    262242msgstr ""
    263243
    264 #: includes/Metabox.php:142
     244#: includes/Metabox.php:201
    265245msgid "Global Additional Rel Tags"
    266246msgstr ""
    267247
    268 #: includes/Metabox.php:142
     248#: includes/Metabox.php:201
    269249msgid "Additional Rel Tags"
    270250msgstr ""
    271251
    272 #: includes/Metabox.php:145
     252#: includes/Metabox.php:204
    273253msgid "Comma separated list of additional rel tags"
    274254msgstr ""
    275255
    276 #: includes/Metabox.php:155
     256#: includes/Metabox.php:228
    277257msgid "None"
    278258msgstr ""
    279259
    280 #: includes/Metabox.php:156
     260#: includes/Metabox.php:229
    281261msgid "Tooltip"
    282262msgstr ""
    283263
    284 #: includes/Metabox.php:157
    285 #: includes/Metabox.php:187
    286 #: includes/Metabox.php:224
     264#: includes/Metabox.php:230
     265#: includes/Metabox.php:270
     266#: includes/Metabox.php:312
    287267msgid "Text After Link"
    288268msgstr ""
    289269
    290 #: includes/Metabox.php:158
     270#: includes/Metabox.php:231
    291271msgid "Content Statement"
    292272msgstr ""
    293273
    294 #: includes/Metabox.php:163
     274#: includes/Metabox.php:236
    295275msgid "Intro text disclosure"
    296276msgstr "Show an (affiliate link) disclosure statement when this link appears in your content."
    297277
    298 #: includes/Metabox.php:166
     278#: includes/Metabox.php:249
    299279msgid "Disclosure Type"
    300280msgstr ""
    301281
    302 #: includes/Metabox.php:180
     282#: includes/Metabox.php:263
    303283msgid "Default Disclosure Tooltip"
    304284msgstr ""
    305285
    306 #: includes/Metabox.php:183
     286#: includes/Metabox.php:266
    307287msgid "default_tooltip_desc"
    308288msgstr ""
    309289
    310 #: includes/Metabox.php:194
     290#: includes/Metabox.php:282
    311291msgid "Content Disclosure Location"
    312292msgstr ""
    313293
    314 #: includes/Metabox.php:198
     294#: includes/Metabox.php:286
    315295msgid "End of Post"
    316296msgstr ""
    317297
    318 #: includes/Metabox.php:199
     298#: includes/Metabox.php:287
    319299msgid "Beginning of Post"
    320300msgstr ""
    321301
    322 #: includes/Metabox.php:200
     302#: includes/Metabox.php:288
    323303msgid "Custom (Via Shortcode or Action)"
    324304msgstr ""
    325305
    326 #: includes/Metabox.php:205
     306#: includes/Metabox.php:293
    327307msgid "Content Disclosure Text"
    328308msgstr ""
    329309
    330 #: includes/Metabox.php:214
     310#: includes/Metabox.php:302
    331311msgid "Disclosure Text"
    332312msgstr ""
    333313
    334 #: includes/Metabox.php:218
    335 #: includes/Metabox.php:229
     314#: includes/Metabox.php:306
     315#: includes/Metabox.php:317
    336316msgid "Default: %s"
    337317msgstr ""
    338318
    339 #: includes/Metabox.php:227
     319#: includes/Metabox.php:315
    340320msgid "after_link_text_desc"
    341321msgstr ""
    342322
    343 #: includes/Metabox.php:245
     323#: includes/Metabox.php:401
    344324msgid "Intro text GA tracking"
    345325msgstr "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."
    346326
    347 #: includes/Metabox.php:253
     327#: includes/Metabox.php:410
    348328msgid "Event Name"
    349329msgstr ""
    350330
    351 #: includes/Metabox.php:258
     331#: includes/Metabox.php:416
    352332msgid "Event Parameters"
    353333msgstr ""
    354334
    355 #: includes/Settings.php:60
    356 #: includes/Settings.php:61
     335#: includes/Settings.php:67
     336#: includes/Settings.php:68
    357337msgid "Settings"
    358338msgstr ""
    359339
    360 #: includes/Settings.php:65
     340#: includes/Settings.php:72
    361341msgid "General"
    362342msgstr ""
    363343
    364 #: includes/Settings.php:80
     344#: includes/Settings.php:87
     345#: includes/Settings.php:93
    365346msgid "Appearance"
    366347msgstr ""
    367348
    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
    374351msgid "Disclosure"
    375352msgstr ""
    376353
    377 #: includes/Settings.php:124
    378 msgid "Link Tracking"
    379 msgstr ""
    380 
    381 #: includes/Settings.php:130
    382 msgid "Tracking"
     354#: includes/Settings.php:206
     355msgid "Affiliate Link"
     356msgstr ""
     357
     358#: includes/Settings.php:207
     359msgid " (Affiliate Link)"
    383360msgstr ""
    384361
    385362#: includes/Settings.php:209
    386 msgid "Affiliate Link"
    387 msgstr ""
    388 
    389 #: includes/Settings.php:210
    390 msgid " (Affiliate Link)"
    391 msgstr ""
    392 
    393 #: includes/Settings.php:212
    394363msgid "default_content_disclosure_text"
    395364msgstr "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."
    396365
    397 #: includes/Shortcode.php:103
     366#: includes/Shortcode.php:59
    398367msgid "You must specify a category or tag"
    399368msgstr ""
    400369
    401370#: assets/app/src/linkgenius-block.js:39
    402 #: assets/js/editor.js:78
     371#: assets/js/editor/editor.js:2
    403372msgid "No LinkGenius Link Selected"
    404373msgstr ""
    405374
    406 #: assets/app/src/linkgenius-block.js:52
    407 #: assets/js/editor.js:91
     375#: assets/app/src/linkgenius-block.js:51
     376#: assets/js/editor/editor.js:2
    408377msgid "Edit LinkGenius Link"
    409378msgstr ""
    410379
    411 #: assets/app/src/linkgenius-block.js:52
    412 #: assets/js/editor.js:91
     380#: assets/app/src/linkgenius-block.js:51
     381#: assets/js/editor/editor.js:2
    413382msgid "Preview LinkGenius Link"
    414383msgstr ""
    415384
     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
     389msgid "LinkGenius Link"
     390msgstr ""
     391
    416392#: 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
    425394msgid "Text"
    426395msgstr ""
    427396
    428 #: assets/app/src/linkgenius-block.js:64
    429 #: assets/js/editor.js:105
     397#: assets/app/src/linkgenius-block.js:63
     398#: assets/js/editor/editor.js:2
    430399msgid "Link"
    431400msgstr ""
    432401
    433402#: assets/app/src/linkgenius-link-format.js:64
    434 #: assets/js/editor.js:304
     403msgid "Remove LinkGenius Link"
     404msgstr ""
     405
     406#: assets/app/src/linkgenius-link-selector.js:75
     407#: assets/js/editor/editor.js:2
     408msgid "No link selected"
     409msgstr ""
     410
     411#: assets/app/src/linkgenius-link-selector.js:77
     412#: assets/js/editor/editor.js:2
     413msgid "Edit"
     414msgstr ""
     415
     416#: assets/app/src/linkgenius-taxonomy-selector.js:47
     417#: assets/js/editor/editor.js:2
     418msgid "Edit LinkGenius List"
     419msgstr ""
     420
     421#: assets/app/src/linkgenius-taxonomy-selector.js:47
     422#: assets/js/editor/editor.js:2
     423msgid "Preview LinkGenius List"
     424msgstr ""
     425
     426#: assets/app/src/linkgenius-taxonomy-selector.js:60
     427#: assets/js/editor/editor.js:2
     428msgid "LinkGenius Category List"
     429msgstr ""
     430
     431#: assets/app/src/linkgenius-taxonomy-selector.js:60
     432#: assets/js/editor/editor.js:2
     433msgid "LinkGenius Tag List"
     434msgstr ""
     435
     436#: assets/app/src/linkgenius-taxonomy-selector.js:62
     437#: assets/js/editor/editor.js:2
     438msgid "Category"
     439msgstr ""
     440
     441#: assets/app/src/linkgenius-taxonomy-selector.js:62
     442#: assets/js/editor/editor.js:2
     443msgid "Tag"
     444msgstr ""
     445
     446#: assets/app/src/linkgenius-taxonomy-selector.js:70
     447#: assets/js/editor/editor.js:2
     448msgid "Sort By"
     449msgstr ""
     450
     451#: assets/app/src/linkgenius-taxonomy-selector.js:73
     452#: assets/js/editor/editor.js:2
     453msgid "Title"
     454msgstr ""
     455
     456#: assets/app/src/linkgenius-taxonomy-selector.js:77
     457#: assets/js/editor/editor.js:2
     458msgid "Template or seperator"
     459msgstr ""
     460
     461#: assets/app/src/linkgenius-taxonomy-selector.js:78
     462#: assets/js/editor/editor.js:2
     463msgid "If {links}{link}{/links} is not found value is treated as seperator. For example, Set to \", \" to make links comma seperated"
     464msgstr ""
     465
     466#: assets/app/src/linkgenius-taxonomy-selector.js:127
     467#: assets/js/editor/editor.js:2
     468msgid "No LinkGenius links found"
     469msgstr ""
     470
     471#: includes/Metabox.php:81
     472msgid "Slug*"
     473msgstr ""
     474
     475#: includes/CPT.php:323
     476msgid "Link Expiration (Pro)"
     477msgstr ""
     478
     479#: includes/Metabox.php:476
     480msgid "Expiration Date"
     481msgstr ""
     482
     483#: includes/CPT.php:354
     484msgid "Geolocation Rules"
     485msgstr ""
     486
     487#: includes/CPT.php:370
     488#: includes/CPT.php:412
     489msgid "Target URL"
     490msgstr ""
     491
     492#: includes/CPT.php:380
     493msgid "Useragent Rules (Pro)"
     494msgstr ""
     495
     496#: includes/CPT.php:390
     497msgid "Intro text useragent"
     498msgstr ""
     499
     500#: includes/CPT.php:396
     501msgid "Useragent Redirects"
     502msgstr ""
     503
     504#: includes/CPT.php:406
     505msgid "User Agent Regex"
     506msgstr ""
     507
     508#: includes/Metabox.php:88
     509msgid "<a href=\"#\" id=\"copy_url\">Copy</a><p>The url to link to in your content.</p>"
     510msgstr ""
     511
     512#: includes/Metabox.php:124
     513msgid "Mimimum Role Linkmanagement"
     514msgstr ""
     515
     516#: includes/Metabox.php:127
     517msgid "Administrator"
     518msgstr ""
     519
     520#: includes/Metabox.php:128
     521msgid "Editor"
     522msgstr ""
     523
     524#: includes/Metabox.php:129
     525msgid "Author"
     526msgstr ""
     527
     528#: includes/Metabox.php:130
     529msgid "Contributor"
     530msgstr ""
     531
     532#: includes/Metabox.php:131
     533msgid "Subscriber"
     534msgstr ""
     535
     536#: includes/Metabox.php:134
     537msgid "The minimum role a user needs in order to create, edit or delete LinkGenius Links. The settings page will remain visible for administrators only."
     538msgstr ""
     539
     540#: includes/Metabox.php:214
     541#: includes/Metabox.php:244
     542#: includes/Metabox.php:394
     543msgid "Default settings, can be overriden per individual link."
     544msgstr ""
     545
     546#: includes/Metabox.php:243
     547msgid "Default disclosure settings"
     548msgstr ""
     549
     550#: includes/Metabox.php:279
     551msgid "Content disclosure settings"
     552msgstr ""
     553
     554#: includes/Metabox.php:345
     555msgid "Tracking Configuration"
     556msgstr ""
     557
     558#: includes/Metabox.php:346
     559msgid "Tracking api description"
     560msgstr ""
     561
     562#: includes/Metabox.php:349
     563msgid "Tracking Method"
     564msgstr ""
     565
     566#: includes/Metabox.php:353
     567msgid "Javascript"
     568msgstr ""
     569
     570#: includes/Metabox.php:354
     571msgid "Serverside Api"
     572msgstr ""
     573
     574#: includes/Metabox.php:357
     575msgid "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."
     576msgstr ""
     577
     578#: includes/Metabox.php:360
     579msgid "GA4 Measurement ID"
     580msgstr ""
     581
     582#: includes/Metabox.php:366
     583msgid "GA4 Api Secret"
     584msgstr ""
     585
     586#: includes/Metabox.php:372
     587msgid "Linkgenius Cookie Fallback"
     588msgstr ""
     589
     590#: includes/Metabox.php:377
     591msgid "<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>"
     592msgstr ""
     593
     594#: includes/Metabox.php:382
     595msgid "Don't track bots"
     596msgstr ""
     597
     598#: includes/Metabox.php:393
     599msgid "Default GA tracking settings"
     600msgstr ""
     601
     602#: includes/Metabox.php:420
     603msgid "You can use the variables %cloaked_url%, %target_url%, %categories%, %tags% and %referrer%"
     604msgstr ""
     605
     606#: includes/Metabox.php:446
     607msgid "A lower order means earlier execution when dealing with conflicting keywords or urls"
     608msgstr ""
     609
     610#: assets/js/editor/editor.js:2
    435611msgid "Remove All Affiliate Link"
    436612msgstr ""
    437613
    438 #: assets/app/src/linkgenius-link-format.js:76
    439 #: assets/js/editor.js:309
     614#: assets/js/editor/editor.js:2
    440615msgid "All Affiliate Link"
    441616msgstr ""
    442 
    443 #: assets/app/src/linkgenius-link-selector.js:76
    444 #: assets/js/editor.js:465
    445 msgid "No link selected"
    446 msgstr ""
    447 
    448 #: assets/app/src/linkgenius-link-selector.js:78
    449 #: assets/js/editor.js:467
    450 msgid "Edit"
    451 msgstr ""
    452 
    453 #: assets/app/src/linkgenius-taxonomy-selector.js:47
    454 #: assets/js/editor.js:731
    455 msgid "Edit LinkGenius List"
    456 msgstr ""
    457 
    458 #: assets/app/src/linkgenius-taxonomy-selector.js:47
    459 #: assets/js/editor.js:731
    460 msgid "Preview LinkGenius List"
    461 msgstr ""
    462 
    463 #: assets/app/src/linkgenius-taxonomy-selector.js:60
    464 #: assets/js/editor.js:745
    465 msgid "LinkGenius Category List"
    466 msgstr ""
    467 
    468 #: assets/app/src/linkgenius-taxonomy-selector.js:60
    469 #: assets/js/editor.js:745
    470 msgid "LinkGenius Tag List"
    471 msgstr ""
    472 
    473 #: assets/app/src/linkgenius-taxonomy-selector.js:62
    474 #: assets/js/editor.js:745
    475 msgid "Category"
    476 msgstr ""
    477 
    478 #: assets/app/src/linkgenius-taxonomy-selector.js:62
    479 #: assets/js/editor.js:745
    480 msgid "Tag"
    481 msgstr ""
    482 
    483 #: assets/app/src/linkgenius-taxonomy-selector.js:70
    484 #: assets/js/editor.js:755
    485 msgid "Sort By"
    486 msgstr ""
    487 
    488 #: assets/app/src/linkgenius-taxonomy-selector.js:73
    489 #: assets/js/editor.js:760
    490 msgid "Title"
    491 msgstr ""
    492 
    493 #: assets/app/src/linkgenius-taxonomy-selector.js:77
    494 #: assets/js/editor.js:769
    495 msgid "Template or seperator"
    496 msgstr ""
    497 
    498 #: assets/app/src/linkgenius-taxonomy-selector.js:78
    499 #: assets/js/editor.js:771
    500 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:126
    504 msgid "No LinkGenius links found"
    505 msgstr ""
    506 
    507 #: assets/js/editor.js:867
    508 msgid "No LinkGenie links found"
    509 msgstr ""
    510 
    511 #: includes/Metabox.php:19
    512 msgid "Slug*"
    513 msgstr ""
    514 
    515 #: includes/CPT.php:319
    516 msgid "Link Expiration (Pro)"
    517 msgstr ""
    518 
    519 #: includes/CPT.php:333
    520 msgid "Expiration Date"
    521 msgstr ""
  • linkgenius/trunk/languages/linkgenius.pot

    r2967528 r2969592  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: LinkGenius 1.0.0\n"
     5"Project-Id-Version: LinkGenius 1.0.1\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/linkgenius\n"
    77"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
     
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"Content-Transfer-Encoding: 8bit\n"
    12 "POT-Creation-Date: 2023-06-15T11:35:31+00:00\n"
     12"POT-Creation-Date: 2023-09-21T07:55:51+00:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    1414"X-Generator: WP-CLI 2.7.1\n"
     
    3535msgstr ""
    3636
    37 #: includes/CPT.php:248
     37#: includes/CPT.php:280
    3838msgid "Link Appearance"
    3939msgstr ""
    4040
    41 #: includes/CPT.php:262
     41#: includes/CPT.php:294
    4242msgid "Link Disclosure"
    4343msgstr ""
    4444
    45 #: includes/CPT.php:276
     45#: includes/CPT.php:308
    4646msgid "Auto Link (Pro)"
    4747msgstr ""
    4848
    49 #: includes/CPT.php:286
     49#: includes/CPT.php:323
     50msgid "Link Expiration (Pro)"
     51msgstr ""
     52
     53#: includes/CPT.php:338
     54msgid "Geolocation Redirects (Pro)"
     55msgstr ""
     56
     57#: includes/CPT.php:348
     58msgid "Intro text Geolocation"
     59msgstr ""
     60
     61#: includes/CPT.php:354
     62msgid "Geolocation Rules"
     63msgstr ""
     64
     65#: includes/CPT.php:357
     66#: includes/CPT.php:399
     67msgid "Redirect {#}"
     68msgstr ""
     69
     70#: includes/CPT.php:358
     71#: includes/CPT.php:400
     72msgid "Add Another Redirect"
     73msgstr ""
     74
     75#: includes/CPT.php:359
     76#: includes/CPT.php:401
     77msgid "Remove Redirect"
     78msgstr ""
     79
     80#: includes/CPT.php:364
     81msgid "Country Code"
     82msgstr ""
     83
     84#: includes/CPT.php:370
     85#: includes/CPT.php:412
     86msgid "Target URL"
     87msgstr ""
     88
     89#: includes/CPT.php:380
     90msgid "Useragent Rules (Pro)"
     91msgstr ""
     92
     93#: includes/CPT.php:390
     94msgid "Intro text useragent"
     95msgstr ""
     96
     97#: includes/CPT.php:396
     98msgid "Useragent Redirects"
     99msgstr ""
     100
     101#: includes/CPT.php:406
     102msgid "User Agent Regex"
     103msgstr ""
     104
     105#: includes/CPT.php:422
     106msgid "GA Link Tracking (Pro)"
     107msgstr ""
     108
     109#: includes/Metabox.php:61
     110#: includes/Metabox.php:79
     111#: includes/Metabox.php:155
     112#: includes/Metabox.php:253
     113msgid "Default (%s)"
     114msgstr ""
     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
     121msgid "Enabled"
     122msgstr ""
     123
     124#: includes/Metabox.php:61
     125#: includes/Metabox.php:63
     126#: includes/Metabox.php:155
     127#: includes/Metabox.php:157
     128msgid "Disabled"
     129msgstr ""
     130
     131#: includes/Metabox.php:74
     132msgid "301 Permanent Redirect"
     133msgstr ""
     134
     135#: includes/Metabox.php:75
     136msgid "302 Temporary Redirect"
     137msgstr ""
     138
     139#: includes/Metabox.php:76
     140msgid "307 Temporary Redirect"
     141msgstr ""
     142
     143#: includes/Metabox.php:81
     144msgid "Slug*"
     145msgstr ""
     146
     147#: includes/Metabox.php:88
     148msgid "<a href=\"#\" id=\"copy_url\">Copy</a><p>The url to link to in your content.</p>"
     149msgstr ""
     150
     151#: includes/Metabox.php:92
     152msgid "Target URL*"
     153msgstr ""
     154
     155#: includes/Metabox.php:98
     156msgid "The target (affiliate) link."
     157msgstr ""
     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
     163msgid "Order"
     164msgstr ""
     165
     166#: includes/Metabox.php:110
     167msgid "The order for the link, used when displaying all links of a tag or category"
     168msgstr ""
     169
     170#: includes/Metabox.php:116
     171msgid "Link Prefix"
     172msgstr ""
     173
     174#: includes/Metabox.php:120
     175msgid "The prefix for your link, for example <i>go, recommends, out, link, affiliate</i>. The link will look like <b>%1$sprefix/slug</b>."
     176msgstr ""
     177
     178#: includes/Metabox.php:124
     179msgid "Mimimum Role Linkmanagement"
     180msgstr ""
     181
     182#: includes/Metabox.php:127
     183msgid "Administrator"
     184msgstr ""
     185
     186#: includes/Metabox.php:128
     187msgid "Editor"
     188msgstr ""
     189
     190#: includes/Metabox.php:129
     191msgid "Author"
     192msgstr ""
     193
     194#: includes/Metabox.php:130
     195msgid "Contributor"
     196msgstr ""
     197
     198#: includes/Metabox.php:131
     199msgid "Subscriber"
     200msgstr ""
     201
     202#: includes/Metabox.php:134
     203msgid "The minimum role a user needs in order to create, edit or delete LinkGenius Links. The settings page will remain visible for administrators only."
     204msgstr ""
     205
     206#: includes/Metabox.php:138
     207msgid "Defaults"
     208msgstr ""
     209
     210#: includes/Metabox.php:140
     211msgid "Intro default general setings"
     212msgstr ""
     213
     214#: includes/Metabox.php:145
     215msgid "Redirect Type"
     216msgstr ""
     217
     218#: includes/Metabox.php:161
     219msgid "No Cloaking"
     220msgstr ""
     221
     222#: includes/Metabox.php:163
     223msgid "When checked affiliate url of LinkGenius Links will be outputted in content instead of the slug."
     224msgstr ""
     225
     226#: includes/Metabox.php:174
     227msgid "Intro text appearance"
     228msgstr ""
     229
     230#: includes/Metabox.php:177
     231msgid "Global CSS Classes"
     232msgstr ""
     233
     234#: includes/Metabox.php:177
     235msgid "CSS Classes"
     236msgstr ""
     237
     238#: includes/Metabox.php:180
     239msgid "Comma separated list of CSS classes"
     240msgstr ""
     241
     242#: includes/Metabox.php:183
     243msgid "Open in New Tab"
     244msgstr ""
     245
     246#: includes/Metabox.php:185
     247msgid "Open the URL in a new tab when clicked. Done by adding target=\"_blank\" tag."
     248msgstr ""
     249
     250#: includes/Metabox.php:188
     251msgid "Parameter Forwarding"
     252msgstr ""
     253
     254#: includes/Metabox.php:192
     255msgid "Sponsored Attribute"
     256msgstr ""
     257
     258#: includes/Metabox.php:196
     259msgid "Nofollow Attribute"
     260msgstr ""
     261
     262#: includes/Metabox.php:201
     263msgid "Global Additional Rel Tags"
     264msgstr ""
     265
     266#: includes/Metabox.php:201
     267msgid "Additional Rel Tags"
     268msgstr ""
     269
     270#: includes/Metabox.php:204
     271msgid "Comma separated list of additional rel tags"
     272msgstr ""
     273
     274#: includes/Metabox.php:213
     275msgid "Default Link appearance"
     276msgstr ""
     277
     278#: includes/Metabox.php:214
     279#: includes/Metabox.php:244
     280#: includes/Metabox.php:394
     281msgid "Default settings, can be overriden per individual link."
     282msgstr ""
     283
     284#: includes/Metabox.php:228
     285msgid "None"
     286msgstr ""
     287
     288#: includes/Metabox.php:229
     289msgid "Tooltip"
     290msgstr ""
     291
     292#: includes/Metabox.php:230
     293#: includes/Metabox.php:270
     294#: includes/Metabox.php:312
     295msgid "Text After Link"
     296msgstr ""
     297
     298#: includes/Metabox.php:231
     299msgid "Content Statement"
     300msgstr ""
     301
     302#: includes/Metabox.php:236
     303msgid "Intro text disclosure"
     304msgstr ""
     305
     306#: includes/Metabox.php:243
     307msgid "Default disclosure settings"
     308msgstr ""
     309
     310#: includes/Metabox.php:249
     311msgid "Disclosure Type"
     312msgstr ""
     313
     314#: includes/Metabox.php:263
     315msgid "Default Disclosure Tooltip"
     316msgstr ""
     317
     318#: includes/Metabox.php:266
     319msgid "default_tooltip_desc"
     320msgstr ""
     321
     322#: includes/Metabox.php:279
     323msgid "Content disclosure settings"
     324msgstr ""
     325
     326#: includes/Metabox.php:282
     327msgid "Content Disclosure Location"
     328msgstr ""
     329
     330#: includes/Metabox.php:286
     331msgid "End of Post"
     332msgstr ""
     333
     334#: includes/Metabox.php:287
     335msgid "Beginning of Post"
     336msgstr ""
     337
     338#: includes/Metabox.php:288
     339msgid "Custom (Via Shortcode or Action)"
     340msgstr ""
     341
     342#: includes/Metabox.php:293
     343msgid "Content Disclosure Text"
     344msgstr ""
     345
     346#: includes/Metabox.php:302
     347msgid "Disclosure Text"
     348msgstr ""
     349
     350#: includes/Metabox.php:306
     351#: includes/Metabox.php:317
     352msgid "Default: %s"
     353msgstr ""
     354
     355#: includes/Metabox.php:315
     356msgid "after_link_text_desc"
     357msgstr ""
     358
     359#: includes/Metabox.php:345
     360msgid "Tracking Configuration"
     361msgstr ""
     362
     363#: includes/Metabox.php:346
     364msgid "Tracking api description"
     365msgstr ""
     366
     367#: includes/Metabox.php:349
     368msgid "Tracking Method"
     369msgstr ""
     370
     371#: includes/Metabox.php:353
     372msgid "Javascript"
     373msgstr ""
     374
     375#: includes/Metabox.php:354
     376msgid "Serverside Api"
     377msgstr ""
     378
     379#: includes/Metabox.php:357
     380msgid "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."
     381msgstr ""
     382
     383#: includes/Metabox.php:360
     384msgid "GA4 Measurement ID"
     385msgstr ""
     386
     387#: includes/Metabox.php:366
     388msgid "GA4 Api Secret"
     389msgstr ""
     390
     391#: includes/Metabox.php:372
     392msgid "Linkgenius Cookie Fallback"
     393msgstr ""
     394
     395#: includes/Metabox.php:377
     396msgid "<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>"
     397msgstr ""
     398
     399#: includes/Metabox.php:382
     400msgid "Don't track bots"
     401msgstr ""
     402
     403#: includes/Metabox.php:393
     404msgid "Default GA tracking settings"
     405msgstr ""
     406
     407#: includes/Metabox.php:401
     408msgid "Intro text GA tracking"
     409msgstr ""
     410
     411#: includes/Metabox.php:410
     412msgid "Event Name"
     413msgstr ""
     414
     415#: includes/Metabox.php:416
     416msgid "Event Parameters"
     417msgstr ""
     418
     419#: includes/Metabox.php:420
     420msgid "You can use the variables %cloaked_url%, %target_url%, %categories%, %tags% and %referrer%"
     421msgstr ""
     422
     423#: includes/Metabox.php:434
    50424msgid "Intro text autolink"
    51425msgstr ""
    52426
    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
     428msgid "A lower order means earlier execution when dealing with conflicting keywords or urls"
     429msgstr ""
     430
     431#: includes/Metabox.php:449
    64432msgid "Keywords"
    65433msgstr ""
    66434
    67 #: includes/CPT.php:305
     435#: includes/Metabox.php:452
    68436msgid "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."
    69437msgstr ""
    70438
    71 #: includes/CPT.php:309
     439#: includes/Metabox.php:455
    72440msgid "URLs"
    73441msgstr ""
    74442
    75 #: includes/CPT.php:312
     443#: includes/Metabox.php:458
    76444msgid "Enter URLs that will automatically be replaced with this LinkGenius link. One url per line."
    77445msgstr ""
    78446
    79 #: includes/CPT.php:319
    80 msgid "Link Expiration (Pro)"
    81 msgstr ""
    82 
    83 #: includes/CPT.php:329
     447#: includes/Metabox.php:473
    84448msgid "Intro text expiration"
    85449msgstr ""
    86450
    87 #: includes/CPT.php:333
     451#: includes/Metabox.php:476
    88452msgid "Expiration Date"
    89453msgstr ""
    90454
    91 #: includes/CPT.php:336
     455#: includes/Metabox.php:479
    92456msgid "Date after which link expires. (optional)"
    93457msgstr ""
    94458
    95 #: includes/CPT.php:340
     459#: includes/Metabox.php:482
    96460msgid "Expiration Clicks"
    97461msgstr ""
    98462
    99 #: includes/CPT.php:349
     463#: includes/Metabox.php:491
    100464msgid "Number of clicks after which the link expires. (optional)"
    101465msgstr ""
    102466
    103 #: includes/CPT.php:353
     467#: includes/Metabox.php:500
    104468msgid "Redirect After Expiry"
    105469msgstr ""
    106470
    107 #: includes/CPT.php:356
     471#: includes/Metabox.php:503
    108472msgid "The url to redirect to after link expired (used only if date or clicks are set)."
    109473msgstr ""
    110474
    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
    370477msgid "Settings"
    371478msgstr ""
    372479
    373 #: includes/Settings.php:65
     480#: includes/Settings.php:72
    374481msgid "General"
    375482msgstr ""
    376483
    377 #: includes/Settings.php:80
     484#: includes/Settings.php:87
     485#: includes/Settings.php:93
    378486msgid "Appearance"
    379487msgstr ""
    380488
    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
    387491msgid "Disclosure"
    388492msgstr ""
    389493
    390 #: includes/Settings.php:124
    391 msgid "Link Tracking"
    392 msgstr ""
    393 
    394 #: includes/Settings.php:130
    395 msgid "Tracking"
     494#: includes/Settings.php:206
     495msgid "Affiliate Link"
     496msgstr ""
     497
     498#: includes/Settings.php:207
     499msgid " (Affiliate Link)"
    396500msgstr ""
    397501
    398502#: includes/Settings.php:209
    399 msgid "Affiliate Link"
    400 msgstr ""
    401 
    402 #: includes/Settings.php:210
    403 msgid " (Affiliate Link)"
    404 msgstr ""
    405 
    406 #: includes/Settings.php:212
    407503msgid "default_content_disclosure_text"
    408504msgstr ""
    409505
    410 #: includes/Shortcode.php:103
     506#: includes/Shortcode.php:59
    411507msgid "You must specify a category or tag"
    412508msgstr ""
    413509
    414510#: assets/app/src/linkgenius-block.js:39
    415 #: assets/js/editor.js:78
     511#: assets/js/editor/editor.js:2
    416512msgid "No LinkGenius Link Selected"
    417513msgstr ""
    418514
    419 #: assets/app/src/linkgenius-block.js:52
    420 #: assets/js/editor.js:91
     515#: assets/app/src/linkgenius-block.js:51
     516#: assets/js/editor/editor.js:2
    421517msgid "Edit LinkGenius Link"
    422518msgstr ""
    423519
    424 #: assets/app/src/linkgenius-block.js:52
    425 #: assets/js/editor.js:91
     520#: assets/app/src/linkgenius-block.js:51
     521#: assets/js/editor/editor.js:2
    426522msgid "Preview LinkGenius Link"
    427523msgstr ""
    428524
     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
     529msgid "LinkGenius Link"
     530msgstr ""
     531
    429532#: 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
    438534msgid "Text"
    439535msgstr ""
    440536
    441 #: assets/app/src/linkgenius-block.js:64
    442 #: assets/js/editor.js:105
     537#: assets/app/src/linkgenius-block.js:63
     538#: assets/js/editor/editor.js:2
    443539msgid "Link"
    444540msgstr ""
    445541
    446542#: assets/app/src/linkgenius-link-format.js:64
    447 #: assets/js/editor.js:304
     543msgid "Remove LinkGenius Link"
     544msgstr ""
     545
     546#: assets/app/src/linkgenius-link-selector.js:75
     547#: assets/js/editor/editor.js:2
     548msgid "No link selected"
     549msgstr ""
     550
     551#: assets/app/src/linkgenius-link-selector.js:77
     552#: assets/js/editor/editor.js:2
     553msgid "Edit"
     554msgstr ""
     555
     556#: assets/app/src/linkgenius-taxonomy-selector.js:47
     557#: assets/js/editor/editor.js:2
     558msgid "Edit LinkGenius List"
     559msgstr ""
     560
     561#: assets/app/src/linkgenius-taxonomy-selector.js:47
     562#: assets/js/editor/editor.js:2
     563msgid "Preview LinkGenius List"
     564msgstr ""
     565
     566#: assets/app/src/linkgenius-taxonomy-selector.js:60
     567#: assets/js/editor/editor.js:2
     568msgid "LinkGenius Category List"
     569msgstr ""
     570
     571#: assets/app/src/linkgenius-taxonomy-selector.js:60
     572#: assets/js/editor/editor.js:2
     573msgid "LinkGenius Tag List"
     574msgstr ""
     575
     576#: assets/app/src/linkgenius-taxonomy-selector.js:62
     577#: assets/js/editor/editor.js:2
     578msgid "Category"
     579msgstr ""
     580
     581#: assets/app/src/linkgenius-taxonomy-selector.js:62
     582#: assets/js/editor/editor.js:2
     583msgid "Tag"
     584msgstr ""
     585
     586#: assets/app/src/linkgenius-taxonomy-selector.js:70
     587#: assets/js/editor/editor.js:2
     588msgid "Sort By"
     589msgstr ""
     590
     591#: assets/app/src/linkgenius-taxonomy-selector.js:73
     592#: assets/js/editor/editor.js:2
     593msgid "Title"
     594msgstr ""
     595
     596#: assets/app/src/linkgenius-taxonomy-selector.js:77
     597#: assets/js/editor/editor.js:2
     598msgid "Template or seperator"
     599msgstr ""
     600
     601#: assets/app/src/linkgenius-taxonomy-selector.js:78
     602#: assets/js/editor/editor.js:2
     603msgid "If {links}{link}{/links} is not found value is treated as seperator. For example, Set to \", \" to make links comma seperated"
     604msgstr ""
     605
     606#: assets/app/src/linkgenius-taxonomy-selector.js:127
     607#: assets/js/editor/editor.js:2
     608msgid "No LinkGenius links found"
     609msgstr ""
     610
     611#: assets/js/editor/editor.js:2
    448612msgid "Remove All Affiliate Link"
    449613msgstr ""
    450614
    451 #: assets/app/src/linkgenius-link-format.js:76
    452 #: assets/js/editor.js:309
     615#: assets/js/editor/editor.js:2
    453616msgid "All Affiliate Link"
    454617msgstr ""
    455 
    456 #: assets/app/src/linkgenius-link-selector.js:76
    457 #: assets/js/editor.js:465
    458 msgid "No link selected"
    459 msgstr ""
    460 
    461 #: assets/app/src/linkgenius-link-selector.js:78
    462 #: assets/js/editor.js:467
    463 msgid "Edit"
    464 msgstr ""
    465 
    466 #: assets/app/src/linkgenius-taxonomy-selector.js:47
    467 #: assets/js/editor.js:731
    468 msgid "Edit LinkGenius List"
    469 msgstr ""
    470 
    471 #: assets/app/src/linkgenius-taxonomy-selector.js:47
    472 #: assets/js/editor.js:731
    473 msgid "Preview LinkGenius List"
    474 msgstr ""
    475 
    476 #: assets/app/src/linkgenius-taxonomy-selector.js:60
    477 #: assets/js/editor.js:745
    478 msgid "LinkGenius Category List"
    479 msgstr ""
    480 
    481 #: assets/app/src/linkgenius-taxonomy-selector.js:60
    482 #: assets/js/editor.js:745
    483 msgid "LinkGenius Tag List"
    484 msgstr ""
    485 
    486 #: assets/app/src/linkgenius-taxonomy-selector.js:62
    487 #: assets/js/editor.js:745
    488 msgid "Category"
    489 msgstr ""
    490 
    491 #: assets/app/src/linkgenius-taxonomy-selector.js:62
    492 #: assets/js/editor.js:745
    493 msgid "Tag"
    494 msgstr ""
    495 
    496 #: assets/app/src/linkgenius-taxonomy-selector.js:70
    497 #: assets/js/editor.js:755
    498 msgid "Sort By"
    499 msgstr ""
    500 
    501 #: assets/app/src/linkgenius-taxonomy-selector.js:73
    502 #: assets/js/editor.js:760
    503 msgid "Title"
    504 msgstr ""
    505 
    506 #: assets/app/src/linkgenius-taxonomy-selector.js:77
    507 #: assets/js/editor.js:769
    508 msgid "Template or seperator"
    509 msgstr ""
    510 
    511 #: assets/app/src/linkgenius-taxonomy-selector.js:78
    512 #: assets/js/editor.js:771
    513 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:126
    517 msgid "No LinkGenius links found"
    518 msgstr ""
    519 
    520 #: assets/js/editor.js:867
    521 msgid "No LinkGenie links found"
    522 msgstr ""
  • linkgenius/trunk/linkgenius.php

    r2967528 r2969592  
    44Plugin URI: https://all-affiliates.com/linkgenius/
    55Description: 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.1
     6Version: 1.1.0
    77Author: all-affiliates.com
    88Author URI: https://all-affiliates.com
     
    2727}
    2828
    29 // // Include necessary files and classes
     29// Include necessary files and classes
    3030require_once plugin_dir_path(__FILE__). 'vendor/cmb2/cmb2/init.php';
    3131require_once plugin_dir_path(__FILE__). 'vendor/jcchavezs/cmb2-conditionals/cmb2-conditionals.php';
     
    6161    // Perform deactivation tasks if needed
    6262}
    63 
    64 // /**
    65 //  * Undocumented function
    66 //  *
    67 //  * @param CMB2 $arg
    68 //  * @return void
    69 //  */
    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 ===
    22Contributors: 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
     3Tags: 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
    44Donate link: https://all-affiliates.com/linkgenius/
    55Requires at least: 6.2
    66Tested up to: 6.3.1
    77Requires PHP: 8.0
    8 Stable tag: 1.0.1
     8Stable tag: 1.1.0
    99License: GPL2
    1010License URI: http://www.gnu.org/licenses/gpl-2.0.html
    1111
    1212== Description ==
     13**Manage your affiliate links with genius precision.**
     14
    1315LinkGenius 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 new level of efficiency.
     16Ensuring a seamless user experience while complying with FTC guidelines and unlocking a new genius level of efficiency.
    1517Let’s take a closer look at what LinkGenius has to offer:
    1618
    1719
    1820= 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 =
     21Easily 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 =
    2123Display 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.
    2224= Customizable link appearance =
     
    2426= Affiliate disclosure =
    2527Maintain 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 =
     29Enhance 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.
    2830= Multiple Redirect Types = Take full control over how your users are redirected, including 301 (Permanent), 302 (Temporary), 307 (Temporary) redirects.
    2931
    3032= 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.
     33While 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.
    3234- 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.
    3436- 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.
    3638- 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.
    3740
    3841== Installation ==
     
    6871Yes, 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.
    6972
    70 = What is link cloaking, and why should I use it? =
     73= What is link branding/cloaking, and why should I use it? =
    7174
    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.
     75Link 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.
    7376
    7477= How can I track the performance of my affiliate links? =
     
    8588
    8689== 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
    8796
    8897= 1.0.1 =
Note: See TracChangeset for help on using the changeset viewer.