installed plugin Easy Digital Downloads
version 3.1.0.3
This commit is contained in:
@ -0,0 +1,181 @@
|
||||
<?php
|
||||
/**
|
||||
* Admin Add-ons
|
||||
*
|
||||
* @package EDD
|
||||
* @subpackage Admin/Add-ons
|
||||
* @copyright Copyright (c) 2018, Easy Digital Downloads, LLC
|
||||
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
|
||||
* @since 1.0
|
||||
*/
|
||||
|
||||
// Exit if accessed directly.
|
||||
defined( 'ABSPATH' ) || exit;
|
||||
|
||||
/**
|
||||
* Add-ons Page
|
||||
*
|
||||
* Renders the add-ons page content.
|
||||
*
|
||||
* @since 1.0
|
||||
* @return void
|
||||
*/
|
||||
function edd_add_ons_page() {
|
||||
|
||||
// Filter the add-ons tabs.
|
||||
$add_ons_tabs = apply_filters( 'edd_add_ons_tabs', array(
|
||||
'popular' => __( 'Popular', 'easy-digital-downloads' ),
|
||||
'new' => __( 'New', 'easy-digital-downloads' ),
|
||||
'all' => __( 'All', 'easy-digital-downloads' )
|
||||
) );
|
||||
|
||||
// Active tab.
|
||||
$active_tab = isset( $_GET['tab'] ) && array_key_exists( $_GET['tab'], $add_ons_tabs )
|
||||
? sanitize_key( $_GET['tab'] )
|
||||
: 'popular';
|
||||
|
||||
// Empty tabs array.
|
||||
$tabs = array();
|
||||
|
||||
// Loop through add-ons and make array of tabs.
|
||||
foreach ( $add_ons_tabs as $tab_id => $tab_name ) {
|
||||
|
||||
// "All"
|
||||
if ( 'all' === $tab_id ) {
|
||||
$tab_url = edd_link_helper(
|
||||
'https://easydigitaldownloads.com/downloads/',
|
||||
array(
|
||||
'utm_medium' => 'addons-page',
|
||||
'utm_content' => 'all-extensions',
|
||||
)
|
||||
);
|
||||
|
||||
// All other tabs besides "All".
|
||||
} else {
|
||||
$tab_url = add_query_arg( array(
|
||||
'settings-updated' => false,
|
||||
'tab' => sanitize_key( $tab_id ),
|
||||
) );
|
||||
}
|
||||
|
||||
// Active?
|
||||
$active = ( $active_tab === $tab_id )
|
||||
? 'current'
|
||||
: '';
|
||||
|
||||
// Count.
|
||||
$count = ( 'all' === $tab_id )
|
||||
? '150+'
|
||||
: '29';
|
||||
|
||||
// The link.
|
||||
$tab = '<li class="' . esc_attr( $tab_id ) . '">';
|
||||
$tab .= ( 'all' === $tab_id )
|
||||
? '<a href="' . esc_url( $tab_url ) . '" class="' . esc_attr( $active ) . '" target="_blank">'
|
||||
: '<a href="' . esc_url( $tab_url ) . '" class="' . esc_attr( $active ) . '">';
|
||||
|
||||
$tab .= esc_html( $tab_name );
|
||||
$tab .= ' <span class="count">(' . esc_html( $count ) . ')</span>';
|
||||
|
||||
// "All" is an external link, so denote it as such.
|
||||
if ( 'all' === $tab_id ) {
|
||||
$tab .= '<span class="dashicons dashicons-external"></span>';
|
||||
}
|
||||
|
||||
$tab .= '</a>';
|
||||
$tab .= '</li>';
|
||||
|
||||
// Set the tab.
|
||||
$tabs[] = $tab;
|
||||
}
|
||||
|
||||
// Start a buffer.
|
||||
ob_start(); ?>
|
||||
|
||||
<div class="wrap" id="edd-add-ons">
|
||||
<h1>
|
||||
<?php _e( 'Apps and Integrations for Easy Digital Downloads', 'easy-digital-downloads' ); ?>
|
||||
<span>
|
||||
<?php
|
||||
$url = edd_link_helper(
|
||||
'https://easydigitaldownloads.com/downloads/',
|
||||
array(
|
||||
'utm_medium' => 'addons-page',
|
||||
'utm_content' => 'browse-all',
|
||||
)
|
||||
);
|
||||
?>
|
||||
<a href="<?php echo $url; ?>" class="button button-primary" target="_blank"><?php esc_html_e( 'Browse All Integrations', 'easy-digital-downloads' ); ?></a>
|
||||
</span>
|
||||
</h1>
|
||||
<p><?php _e( 'These <em><strong>add functionality</strong></em> to your Easy Digital Downloads powered store.', 'easy-digital-downloads' ); ?></p>
|
||||
|
||||
<ul class="subsubsub"><?php echo implode( ' | ', $tabs ); ?></ul>
|
||||
|
||||
<div class="edd-add-ons-container">
|
||||
<?php
|
||||
// Display all add ons.
|
||||
echo wp_kses_post( edd_add_ons_get_feed( $active_tab ) );
|
||||
?>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="edd-add-ons-footer">
|
||||
<?php
|
||||
$url = edd_link_helper(
|
||||
'https://easydigitaldownloads.com/downloads/',
|
||||
array(
|
||||
'utm_medium' => 'addons-page',
|
||||
'utm_content' => 'browse-all',
|
||||
)
|
||||
);
|
||||
?>
|
||||
<a href="<?php echo $url; ?>" class="button button-primary" target="_blank"><?php esc_html_e( 'Browse All Integrations', 'easy-digital-downloads' ); ?></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
|
||||
// Output the current buffer.
|
||||
echo ob_get_clean();
|
||||
}
|
||||
|
||||
/**
|
||||
* Add-ons Get Feed
|
||||
*
|
||||
* Gets the add-ons page feed.
|
||||
*
|
||||
* @since 1.0
|
||||
* @return void
|
||||
*/
|
||||
function edd_add_ons_get_feed( $tab = 'popular' ) {
|
||||
|
||||
// Transient.
|
||||
$trans_key = 'easydigitaldownloads_add_ons_feed_' . $tab;
|
||||
$cache = get_transient( $trans_key );
|
||||
|
||||
// No add ons, so reach out and get some.
|
||||
if ( false === $cache ) {
|
||||
$url = 'https://easydigitaldownloads.com/?feed=addons';
|
||||
|
||||
// Popular.
|
||||
if ( 'popular' !== $tab ) {
|
||||
$url = add_query_arg( array( 'display' => sanitize_key( $tab ) ), $url );
|
||||
}
|
||||
|
||||
// Remote request.
|
||||
$feed = wp_remote_get( esc_url_raw( $url ), array( 'sslverify' => false ) );
|
||||
|
||||
// Handle error.
|
||||
if ( empty( $feed ) || is_wp_error( $feed ) ) {
|
||||
$cache = '<div class="error"><p>' . __( 'These extensions could not be retrieved from the server. Please try again later.', 'easy-digital-downloads' ) . '</div>';
|
||||
|
||||
// Cache the results.
|
||||
} elseif ( isset( $feed['body'] ) && strlen( $feed['body'] ) > 0 ) {
|
||||
$cache = wp_remote_retrieve_body( $feed );
|
||||
set_transient( $trans_key, $cache, HOUR_IN_SECONDS );
|
||||
}
|
||||
}
|
||||
|
||||
return $cache;
|
||||
}
|
Reference in New Issue
Block a user