1
|
|
|
<?php |
2
|
|
|
/** |
3
|
|
|
* Auto Load Next Post - Admin Action Links. |
4
|
|
|
* |
5
|
|
|
* Adds links to Auto Load Next Post on the plugins page. |
6
|
|
|
* |
7
|
|
|
* @since 1.6.0 |
8
|
|
|
* @author Sébastien Dumont |
9
|
|
|
* @category Admin |
10
|
|
|
* @package Auto Load Next Post/Admin |
11
|
|
|
* @license GPL-2.0+ |
12
|
|
|
*/ |
13
|
|
|
|
14
|
|
|
// Exit if accessed directly. |
15
|
|
|
if ( ! defined( 'ABSPATH' ) ) { |
16
|
|
|
exit; |
17
|
|
|
} |
18
|
|
|
|
19
|
|
|
if ( ! class_exists( 'ALNP_Admin_Action_Links' ) ) { |
20
|
|
|
|
21
|
|
|
class ALNP_Admin_Action_Links { |
22
|
|
|
|
23
|
|
|
/** |
24
|
|
|
* Constructor |
25
|
|
|
* |
26
|
|
|
* @access public |
27
|
|
|
*/ |
28
|
|
|
public function __construct() { |
29
|
|
|
add_filter( 'plugin_action_links_' . plugin_basename( AUTO_LOAD_NEXT_POST_FILE ), array( $this, 'plugin_action_links' ) ); |
30
|
|
|
add_filter( 'plugin_row_meta', array( $this, 'plugin_row_meta'), 10, 3 ); |
31
|
|
|
} // END __construct() |
32
|
|
|
|
33
|
|
|
/** |
34
|
|
|
* Plugin action links. |
35
|
|
|
* |
36
|
|
|
* @access public |
37
|
|
|
* @param array $links An array of plugin links. |
38
|
|
|
* @return array $links |
39
|
|
|
*/ |
40
|
|
|
public function plugin_action_links( $links ) { |
41
|
|
|
if ( current_user_can( 'manage_options' ) ) { |
42
|
|
|
$action_links = array( |
43
|
|
|
'getting-started' => '<a href="' . add_query_arg( array( 'page' => 'auto-load-next-post', 'view' => 'getting-started' ), admin_url( 'options-general.php' ) ) . '" aria-label="' . sprintf( esc_attr__( 'Getting Started with %s', 'auto-load-next-post' ), esc_html__( 'Auto Load Next Post', 'auto-load-next-post' ) ) . '">' . esc_attr__( 'Getting Started', 'auto-load-next-post' ) . '</a>', |
44
|
|
|
'settings' => '<a href="' . add_query_arg( array( 'page' => 'auto-load-next-post' ), admin_url( 'options-general.php' ) ) . '" aria-label="' . sprintf( esc_attr__( 'View %s settings', 'auto-load-next-post' ), esc_html__( 'Auto Load Next Post', 'auto-load-next-post' ) ) . '">' . esc_attr__( 'Settings', 'auto-load-next-post' ) . '</a>' |
45
|
|
|
); |
46
|
|
|
|
47
|
|
|
return array_merge( $action_links, $links ); |
48
|
|
|
} |
49
|
|
|
|
50
|
|
|
return $links; |
51
|
|
|
} // END plugin_action_links() |
52
|
|
|
|
53
|
|
|
/** |
54
|
|
|
* Plugin row meta links |
55
|
|
|
* |
56
|
|
|
* @access public |
57
|
|
|
* @param array $metadata An array of the plugin's metadata. |
58
|
|
|
* @param string $file Path to the plugin file. |
59
|
|
|
* @param array $data Plugin Information |
60
|
|
|
* @return array $metadata |
61
|
|
|
*/ |
62
|
|
|
public function plugin_row_meta( $metadata, $file, $data ) { |
63
|
|
|
if ( $file == plugin_basename( AUTO_LOAD_NEXT_POST_FILE ) ) { |
64
|
|
|
$metadata[ 1 ] = sprintf( __( 'Developed By %s', 'auto-load-next-post' ), '<a href="' . $data[ 'AuthorURI' ] . '" aria-label="' . esc_attr__( 'View the developers site', 'auto-load-next-post' ) . '">' . $data[ 'Author' ] . '</a>' ); |
65
|
|
|
|
66
|
|
|
$campaign_args = array( |
67
|
|
|
'utm_medium' => 'auto-load-next-post-lite', |
68
|
|
|
'utm_source' => 'plugins-page', |
69
|
|
|
'utm_campaign' => 'plugins-row', |
70
|
|
|
'utm_content' => 'go-pro', |
71
|
|
|
); |
72
|
|
|
|
73
|
|
|
$theme_support = add_query_arg( $campaign_args, AUTO_LOAD_NEXT_POST_STORE_URL . 'product/theme-support/' ); |
74
|
|
|
|
75
|
|
|
$row_meta = array( |
76
|
|
|
'docs' => '<a href="' . esc_url( 'https://github.com/autoloadnextpost/alnp-documentation/tree/master/en_US#the-manual' ) . '" aria-label="' . sprintf( esc_attr__( 'View %s documentation', 'auto-load-next-post' ), esc_html__( 'Auto Load Next Post', 'auto-load-next-post' ) ) . '" target="_blank">' . esc_attr__( 'Documentation', 'auto-load-next-post' ) . '</a>', |
77
|
|
|
'community' => '<a href="' . esc_url( 'https://wordpress.org/support/plugin/auto-load-next-post' ) . '" aria-label="' . esc_attr__( 'Get support from the community', 'auto-load-next-post' ). '" target="_blank">' . esc_attr__( 'Community Support', 'auto-load-next-post' ) . '</a>', |
78
|
|
|
'theme-support' => '<a href="' . esc_url( $theme_support ) . '" attr-label="' . esc_attr__( 'Get theme support', 'auto-load-next-post' ) . '" target="_blank">' . esc_attr__( 'Theme Support', 'auto-load-next-post' ) . '</a>', |
79
|
|
|
'review' => '<a href="' . esc_url( AUTO_LOAD_NEXT_POST_REVIEW_URL ) . '" aria-label="' . sprintf( esc_attr__( 'Review %s on WordPress.org', 'auto-load-next-post' ), esc_html__( 'Auto Load Next Post', 'auto-load-next-post' ) ) . '" target="_blank">' . esc_attr__( 'Leave a Review', 'auto-load-next-post' ) . '</a>', |
80
|
|
|
); |
81
|
|
|
|
82
|
|
|
// Checks if Auto Load Next Post Pro has been installed. |
83
|
|
|
if ( ! is_alnp_pro_version_installed() ) { |
84
|
|
|
$store_url = add_query_arg( $campaign_args, AUTO_LOAD_NEXT_POST_STORE_URL . 'pro/' ); |
85
|
|
|
|
86
|
|
|
$row_meta['pro'] = sprintf( '<a href="%1$s" aria-label="' . sprintf( esc_attr__( 'Sign up for %s', 'auto-load-next-post' ), esc_html__( 'Auto Load Next Post Pro', 'auto-load-next-post' ) ) . '" target="_blank" style="color: #c00; font-weight: 700;">%2$s</a>', esc_url( $store_url ), esc_attr__( 'Pro Coming Soon', 'auto-load-next-post' ) ); |
87
|
|
|
} |
88
|
|
|
|
89
|
|
|
$metadata = array_merge( $metadata, $row_meta ); |
90
|
|
|
} |
91
|
|
|
|
92
|
|
|
return $metadata; |
93
|
|
|
} // END plugin_row_meta() |
94
|
|
|
|
95
|
|
|
} // END class |
96
|
|
|
|
97
|
|
|
} // END if class exists |
98
|
|
|
|
99
|
|
|
return new ALNP_Admin_Action_Links(); |
100
|
|
|
|