developer-branch/admin/class-cklph-wdl-admin.php

885 lines
25 KiB
PHP

<?php
/**
* The admin-specific functionality of WDL.
*
* Defines the plugin name, version, enqueues the necessarry css and js files for the admin page,
* defines the admin page, submenu page, and the settings page.
*
* @package Woocommerce_Direct_Links
* @subpackage Woocommerce_Direct_Links/includes
* @author Joel Sanguenza <joel@chykalophia.com>,
* Lord Francis Navarro <francis@chykalophia.com>
* @link https://chykalophia.com/woocommerce-direct-links
* @since 0.1.0
*/
if ( ! class_exists( 'Cklph_Wdl_Admin' ) ) {
/**
* Plugin admin/settings class
*/
class Cklph_Wdl_Admin {
/**
* The ID of wdl.
*
* @since 0.1.0
* @access private
* @var string $plugin_name The ID of this plugin.
*/
private $plugin_name;
/**
* The version of wdl.
*
* @since 0.1.0
* @access private
* @var string $version The current version of this plugin.
*/
private $version;
/**
* Initialize the class and set its properties.
*
* @since 0.1.0
* @param string $plugin_name The name of this plugin.
* @param string $version The version of this plugin.
*/
public function __construct( $plugin_name, $version ) {
$this->plugin_name = $plugin_name;
$this->version = $version;
}
/**
* Register the stylesheets for the admin area.
*
* @since 0.1.0
*/
public function cklph_wdl_enqueue_styles() {
$screen = get_current_screen();
if ( 'toplevel_page_cklph-wdl-admin' === $screen->id ) {
wp_enqueue_style( $this->plugin_name, CKLPH_WDL_URL . 'admin/css/cklph-wdl-admin.css', array(), $this->version, 'all' );
}
if ( 'product' === $screen->id ) {
wp_enqueue_style( $this->plugin_name, CKLPH_WDL_URL . 'admin/css/cklph-wdl-metabox.css', array(), $this->version, 'all' );
}
if ( 'woocommerce-direct-links_page_cklph-wdl-settings' === $screen->id ) {
wp_enqueue_style( $this->plugin_name, CKLPH_WDL_URL . 'admin/css/cklph-wdl-settings.css', array(), $this->version, 'all' );
}
}
/**
* Register the JavaScript for the admin area.
*
* @since 0.1.0
*/
public function cklph_wdl_enqueue_scripts() {
$screen = get_current_screen();
if ( 'toplevel_page_cklph-wdl-admin' === $screen->id || 'product' === $screen->id ) {
wp_enqueue_script( $this->plugin_name, CKLPH_WDL_URL . 'admin/js/cklph-wdl-admin.js', array( 'jquery' ), $this->version, false ); // Load js scripts for admin and product pages.
// Localized scripts for wp rest api nonce for admin and product pages.
wp_localize_script(
$this->plugin_name,
'cklph_wdl',
array(
'product-joturl' => home_url( '/wp-json/cklph-wdl/v1/product-joturl/' ),
'product' => home_url( '/wp-json/cklph-wdl/v1/product/' ),
'nonce' => wp_create_nonce( 'wp_rest' ),
),
);
}
if ( 'woocommerce-direct-links_page_cklph-wdl-settings' === $screen->id ) {
wp_enqueue_script( $this->plugin_name, CKLPH_WDL_URL . 'admin/js/cklph-wdl-settings.js', array( 'jquery' ), $this->version, false ); // Load js scripts for settings page.
// Localized scripts for wp rest api nonce for settings page.
wp_localize_script(
$this->plugin_name,
'cklph_wdl',
array(
'shortlink' => home_url( '/wp-json/cklph-wdl/v1/shortlink/' ),
'product' => home_url( '/wp-json/cklph-wdl/v1/product/' ),
'tinyurl' => home_url( '/wp-json/cklph-wdl/v1/tinyurl/' ),
'yourls' => home_url( '/wp-json/cklph-wdl/v1/yourls/' ),
'joturl' => home_url( '/wp-json/cklph-wdl/v1/joturl/' ),
'bitly' => home_url( '/wp-json/cklph-wdl/v1/bitly/' ),
'nonce' => wp_create_nonce( 'wp_rest' ),
),
);
}
}
/**
* Validate if woocommerce is active
*
* @since 0.1.0
*/
public function cklph_wdl_has_woocommerce() {
if ( is_admin() && current_user_can( 'activate_plugins' ) && ! is_plugin_active( 'woocommerce/woocommerce.php' ) ) {
add_action( 'admin_notices', array( $this, 'cklph_wdl_no_woocommerce_error' ) );
if ( isset( $_GET['activate'] ) ) {
unset( $_GET['activate'] );
}
deactivate_plugins( CKLPH_WDL_BASE );
}
}
/**
* Error message if woocommerce is not installed and activated
*
* @since 0.1.0
*/
public function cklph_wdl_no_woocommerce_error() {
echo '<div class="notice notice-error settings-error is-dismissible">
<p><strong>' . esc_html__( 'Cannot activate WooCommerce Direct Links without WooCommerce installed and activated.', 'woocommerce-direct-links' ) . ' </strong></p>
</div>';
}
/**
* Adds the admin and settings pages
*
* @since 0.1.0
* @return void for admin page
*/
public function cklph_wdl_add_admin_pages() {
// If WooCommerce is activated run admin menu and submenu page.
if ( class_exists( 'woocommerce' ) ) {
$admin_page = add_menu_page(
__( 'Woocommerce Direct Links', 'woocommerce-direct-links' ),
__( 'Woocommerce Direct Links', 'woocommerce-direct-links' ),
'manage_options',
'cklph-wdl-admin',
array( $this, 'cklph_wdl_admin_page' ),
'dashicons-store',
110
);
$with_subpage = add_submenu_page(
'cklph-wdl-admin',
__( 'Woocommerce Direct Links', 'woocommerce-direct-links' ),
__( 'WDL Table', 'woocommerce-direct-links' ),
'manage_options',
'cklph-wdl-admin',
array( $this, 'cklph_wdl_admin_page' ),
);
add_submenu_page(
'cklph-wdl-admin',
__( 'Woocommerce Direct Links', 'woocommerce-direct-links' ),
__( 'Settings', 'woocommerce-direct-links' ),
'manage_options',
'cklph-wdl-settings',
array( $this, 'cklph_wdl_settings_page' )
);
add_action( "load-{$admin_page}", array( $this, 'cklph_wdl_screen_options' ) );
array_merge( array( $with_subpage, $admin_page ) );
}
}
/**
* Callback for admin page
*
* @since 0.1.0
* @return void callback path
*/
public function cklph_wdl_admin_page() {
include_once CKLPH_WDL_PATH . 'admin/partials/cklph-wdl-admin-page.php';
}
/**
* Callback for settings page
*
* @since 0.1.0
* @return void callback path
*/
public function cklph_wdl_settings_page() {
include_once CKLPH_WDL_PATH . 'admin/partials/cklph-wdl-settings-page.php';
}
/**
* Add meta box in WooCommerce products page
*
* @since 0.1.0
*/
public function cklph_wdl_add_meta_box() {
$product = wc_get_product( get_the_ID() );
$screen = get_current_screen();
if ( 'product' === $screen->id ) {
if ( $product->is_type( array( 'simple', 'variable', 'subscription' ) ) && 'publish' === $product->get_status() ) {
add_meta_box(
'cklph-wdl-product-meta-box',
__( 'WooCommerce Direct Links', 'woocommerce-direct-links' ),
array( $this, 'cklph_wdl_admin_page' ),
'product'
);
}
}
}
/**
* Screen options for admin page.
*
* @since 0.1.0
* @return void
*/
public function cklph_wdl_screen_options() {
$screen = get_current_screen();
if ( 'toplevel_page_cklph-wdl-admin' !== $screen->id || ! is_object( $screen ) ) {
return;
}
// Array for per page in screen-options.
$per_page_args = array(
'default' => 5,
'option' => 'cklph_wdl_per_page',
);
add_screen_option( 'per_page', $per_page_args );
new Cklph_Wdl_List_Table();
}
/**
* Rest Api initialize.
*
* @return void
*/
public function cklph_wdl_rest_api() {
if ( class_exists( 'Cklph_Wdl_Rest' ) ) {
$controller = new Cklph_Wdl_Rest();
$controller->cklph_wdl_rest_route();
}
}
/**
* Screen options for pagination on list table.
*
* @since 0.1.0
* @param bool|int $status Screen option value. Default false to skip.
* @param string $option The option name.
* @param int $value The number of rows to use.
* @return $value
*/
public function cklph_wdl_set_pagination_option( $status, $option, $value ) {
if ( 'cklph_wdl_per_page' === $option ) {
return $value;
}
}
/**
* Adding plugin links
*
* @since 0.1.0
* @param array $actions action_links array.
* @return $actions action links in plugin page.
*/
public function cklph_wdl_add_action_links( $actions ) {
$settings = array( '<a href="' . esc_url( admin_url( 'admin.php?page=cklph-wdl-settings' ) ) . '">Settings</a>' );
if ( class_exists( 'woocommerce' ) ) {
$actions = array_merge( $settings, $actions );
}
return $actions;
}
/**
* Initialize settings
*
* @since 0.1.0
* @return void for settings
*/
public function cklph_wdl_settings_init() {
// setup settings section.
add_settings_section(
'settings_section', // section id.
__( 'Settings', 'woocommerce-direct-link' ), // section title.
array( $this, 'cklph_wdl_settings' ), // callback.
'cklph-wdl-settings' // page.
);
// register radio field for URL Shortener.
register_setting(
'cklph-wdl-option-group',
'url_options',
array(
'type' => 'string',
'default' => 'none',
'sanitize_callback' => 'sanitize_text_field',
)
);
// add radio field for URL Shortener.
add_settings_field(
'url_options',
__( 'URL Shortener', 'woocommerce-direct-link' ),
array( $this, 'cklph_wdl_url_shortener' ),
'cklph-wdl-settings',
'settings_section',
array(
'label_for' => 'url_options',
'class' => 'plugin_row',
)
);
$this->cklph_wdl_bitly_option();
$this->cklph_wdl_yourls_option();
$this->cklph_wdl_joturl_option();
$this->cklph_wdl_tinyurl_option();
}
/**
* Add & register settings section & field for Tinyurl.
*
* @return void
*/
public function cklph_wdl_tinyurl_option() {
// setup tinyurl settings section.
add_settings_section(
'tinyurl_section', // section id.
__( 'TinyURL', 'woocommerce-direct-link' ), // section title.
array( $this, 'cklph_wdl_settings_tinyurl' ), // callback.
'cklph-wdl-tinyurl-settings' // page.
);
// register field for tinyurl domain.
register_setting(
'cklph-wdl-tinyurl-group',
'tinyurl_domain',
array(
'type' => 'string',
'sanitize_callback' => 'sanitize_text_field',
)
);
// register field for tinyurl access token.
register_setting(
'cklph-wdl-tinyurl-group',
'tinyurl_access_token_options',
array(
'type' => 'string',
'sanitize_callback' => 'sanitize_text_field',
)
);
// add input field for tinyurl domain.
add_settings_field(
'tinyurl_domain',
__( 'TinyURL Domain', 'woocommerce-direct-link' ),
array( $this, 'cklph_wdl_tinyurl_domain' ),
'cklph-wdl-tinyurl-settings',
'tinyurl_section',
array(
'label_for' => 'tinyurl_domain',
'class' => 'plugin_row',
)
);
// add input field for tinyurl access token.
add_settings_field(
'tinyurl_access_token_options',
__( 'TinyURL Access Token', 'woocommerce-direct-link' ),
array( $this, 'cklph_wdl_tinyurl_api_key' ),
'cklph-wdl-tinyurl-settings',
'tinyurl_section',
array(
'label_for' => 'tinyurl_access_token_options',
'class' => 'plugin_row',
)
);
}
/**
* Add & register settings section & field for bitly.
*
* @return void
*/
public function cklph_wdl_bitly_option() {
// setup bitly settings section.
add_settings_section(
'bitly_section', // section id.
__( 'Bitly', 'woocommerce-direct-link' ), // section title.
array( $this, 'cklph_wdl_settings_bitly' ), // callback.
'cklph-wdl-bitly-settings' // page.
);
// register field for Bitly access token.
register_setting(
'cklph-wdl-bitly-group',
'bitly_access_token_options',
array(
'type' => 'string',
'sanitize_callback' => 'sanitize_text_field',
)
);
// add input field for Bitly access token.
add_settings_field(
'bitly_access_token_options',
__( 'Bitly Access Token', 'woocommerce-direct-link' ),
array( $this, 'cklph_wdl_bitly_api_key' ),
'cklph-wdl-bitly-settings',
'bitly_section',
array(
'label_for' => 'bitly_access_token_options',
'class' => 'plugin_row',
)
);
}
/**
* Add & register settings section & field for yourls.
*
* @return void
*/
public function cklph_wdl_yourls_option() {
// setup yourls settings section.
add_settings_section(
'yourls_section', // section id.
__( 'YoURLS', 'woocommerce-direct-link' ), // section title.
array( $this, 'cklph_wdl_settings_yourls' ), // callback.
'cklph-wdl-yourls-settings' // page.
);
// register field for YoURLS signature.
register_setting(
'cklph-wdl-yourls-group',
'yourls_signature',
array(
'type' => 'string',
'sanitize_callback' => 'sanitize_text_field',
)
);
// register field for YoURLS domain.
register_setting(
'cklph-wdl-yourls-group',
'yourls_domain',
array(
'type' => 'string',
'sanitize_callback' => 'sanitize_text_field',
)
);
// add input field for YoURLS domain.
add_settings_field(
'yourls_domain',
__( 'YoURLS Site', 'woocommerce-direct-link' ),
array( $this, 'cklph_wdl_yourls_domain' ),
'cklph-wdl-yourls-settings',
'yourls_section',
array(
'label_for' => 'yourls_domain',
'class' => 'plugin_row',
)
);
// add input field for YoURLS Signature.
add_settings_field(
'yourls_signature',
__( 'YoURLS Signature', 'woocommerce-direct-link' ),
array( $this, 'cklph_wdl_yourls_signature' ),
'cklph-wdl-yourls-settings',
'yourls_section',
array(
'label_for' => 'yourls_signature',
'class' => 'plugin_row',
)
);
}
/**
* Add & register settings section & field for JotURL.
*
* @return void
*/
public function cklph_wdl_joturl_option() {
// setup tinyurl settings section.
add_settings_section(
'joturl_section', // section id.
__( 'JotURL', 'woocommerce-direct-link' ), // section title.
array( $this, 'cklph_wdl_settings_joturl' ), // callback.
'cklph-wdl-joturl-settings' // page.
);
// register field for joturl domain.
register_setting(
'cklph-wdl-joturl-group',
'joturl_public',
array(
'type' => 'string',
'sanitize_callback' => 'sanitize_text_field',
)
);
// register field for joturl access token.
register_setting(
'cklph-wdl-joturl-group',
'joturl_private',
array(
'type' => 'string',
'sanitize_callback' => 'sanitize_text_field',
)
);
// add input field for joturl domain.
add_settings_field(
'joturl_public',
__( 'JotURL Public Key', 'woocommerce-direct-link' ),
array( $this, 'cklph_wdl_joturl_public' ),
'cklph-wdl-joturl-settings',
'joturl_section',
array(
'label_for' => 'joturl_public',
'class' => 'plugin_row',
)
);
// add input field for joturl access token.
add_settings_field(
'joturl_private',
__( 'JotURL Private Key', 'woocommerce-direct-link' ),
array( $this, 'cklph_wdl_joturl_private' ),
'cklph-wdl-joturl-settings',
'joturl_section',
array(
'label_for' => 'joturl_private',
'class' => 'plugin_row',
)
);
}
/**
* Settings general callback
*
* @since 0.1.0
* @param int $args settings callback id.
*/
public function cklph_wdl_settings( $args ) {
return sprintf(
'<p id="$1$s">%2$s</p>',
esc_attr( $args['id'] ),
esc_html_e( 'Choose URL Shortener.', 'woocommerce-direct-link' )
);
}
/**
* Settings tinyurl callback
*
* @since 0.1.0
* @param int $args settings callback id.
*/
public function cklph_wdl_settings_tinyurl( $args ) {
return sprintf(
'<p id="$1$s">%2$s</p>',
esc_attr( $args['id'] ),
esc_html_e( 'Please enter a valid TinyURL API Key or use automatic tinyurl shortener.', 'woocommerce-direct-link' )
);
}
/**
* Settings bitly callback
*
* @since 0.1.0
* @param int $args settings callback id.
*/
public function cklph_wdl_settings_bitly( $args ) {
return sprintf(
'<p id="$1$s">%2$s</p>',
esc_attr( $args['id'] ),
esc_html_e( 'Please enter a valid Bitly API Key.', 'woocommerce-direct-link' )
);
}
/**
* Settings yourls callback
*
* @since 0.1.0
* @param int $args settings callback id.
*/
public function cklph_wdl_settings_yourls( $args ) {
return sprintf(
'<p id="$1$s">%2$s</p>',
esc_attr( $args['id'] ),
esc_html_e( 'Please enter a valid YoURLS Site & Signature.', 'woocommerce-direct-link' )
);
}
/**
* Settings joturl callback
*
* @since 0.1.0
* @param int $args settings callback id.
*/
public function cklph_wdl_settings_joturl( $args ) {
return sprintf(
'<p id="$1$s">%2$s</p>',
esc_attr( $args['id'] ),
esc_html_e( 'Please enter a valid JotURL Public Key & Private Key.', 'woocommerce-direct-link' )
);
}
/**
* Tinyurl access token callback
*
* @return void
*/
public function cklph_wdl_tinyurl_api_key() {
$access_token = get_option( 'tinyurl_access_token_options' );
$api_value = isset( $access_token ) ? esc_attr( $access_token ) : '';
echo sprintf(
'<input type="text" placeholder="TinyURL API Here" id="tinyurl_access_token_options" name="tinyurl_access_token_options" value="%1$s" />',
esc_attr( $api_value )
);
}
/**
* Tinyurl Domain callback.
*
* @return void
*/
public function cklph_wdl_tinyurl_domain() {
$tinyurl_domain = get_option( 'tinyurl_domain' );
$domain_value = isset( $tinyurl_domain ) ? esc_attr( $tinyurl_domain ) : '';
echo sprintf(
'<input type="text" placeholder="e.g tiny.one" id="tinyurl_domain" name="tinyurl_domain" value="%1$s" />',
esc_attr( $domain_value )
);
}
/**
* Bitly access token callback
*
* @since 0.1.0
*/
public function cklph_wdl_bitly_api_key() {
$access_token = get_option( 'bitly_access_token_options' );
$api_value = isset( $access_token ) ? esc_attr( $access_token ) : '';
echo sprintf(
'<input type="text" placeholder="Bitly API Key Here" id="bitly_access_token_options" name="bitly_access_token_options" value="%1$s" />',
esc_attr( $api_value )
);
}
/**
* YoURLS signature callback.
*
* @return void
*/
public function cklph_wdl_yourls_signature() {
$yourls_signature = get_option( 'yourls_signature' );
$signature_value = isset( $yourls_signature ) ? esc_attr( $yourls_signature ) : '';
echo sprintf(
'<input type="text" placeholder="YoURLS API Key Here" id="yourls_signature" name="yourls_signature" value="%1$s" />',
esc_attr( $signature_value )
);
}
/**
* YoURLS domain callback
*
* @return void
*/
public function cklph_wdl_yourls_domain() {
$yourls_domain = get_option( 'yourls_domain' );
$domain_value = isset( $yourls_domain ) ? esc_attr( $yourls_domain ) : '';
echo sprintf(
'<input type="text" placeholder="e.g yourls.org" id="yourls_domain" name="yourls_domain" value="%1$s" />',
esc_attr( $domain_value )
);
}
/**
* JotURL public key callback.
*
* @return void
*/
public function cklph_wdl_joturl_public() {
$joturl_public_key = get_option( 'joturl_public' );
$public_key_value = isset( $joturl_public_key ) ? esc_attr( $joturl_public_key ) : '';
echo sprintf(
'<input type="text" placeholder="JotURL Public API Key" id="joturl_public_key" name="joturl_public_key" value="%1$s" />',
esc_attr( $public_key_value )
);
}
/**
* JotURL private key callback.
*
* @return void
*/
public function cklph_wdl_joturl_private() {
$joturl_private_key = get_option( 'joturl_private' );
$private_key_value = isset( $joturl_private_key ) ? esc_attr( $joturl_private_key ) : '';
echo sprintf(
'<input type="text" placeholder="JotURL Private API Key" id="joturl_private_key" name="joturl_private_key" value="%1$s" />',
esc_attr( $private_key_value )
);
}
/**
* Url shortener option template in settings page.
*
* @since 0.1.0
* @return void html elements in settings page.
*/
public function cklph_wdl_url_shortener() {
$this->cklph_wdl_tinyurl_shortener();
$this->cklph_wdl_bitly_shortener();
$this->cklph_wdl_yourls_shortener();
$this->cklph_wdl_joturl_shortener();
}
/**
* Tinyurl shortener option template in settings page.
*
* @since 0.1.0
* @return void html elements for tinyurl in settings page.
*/
public function cklph_wdl_tinyurl_shortener() {
$url_option = get_option( 'url_options' );
$setup_text = esc_html__( 'Setup', 'woocommerce-direct-links' );
$tinyurl_img = CKLPH_WDL_URL . 'admin/img/tinyurl.svg';
$tinyurl_text = esc_html__( 'TinyURL', 'woocommerce-direct-link' );
$active_tinyurl = ( 'tinyurl' === $url_option ) ? esc_html__( 'Deactivate', 'woocommerce-direct-links' ) : esc_html__( 'Activate', 'woocommerce-direct-links' );
// Echo html tags for tinyurl.
echo sprintf(
'<div class="shortener">
<img class="logo" src="%1$s" alt="tinyurl">
<h3>%2$s</h3>
<div class="box">
<button class="button button-primary" name="setup_btn" type="button" id="tinyurl_setup_btn" onclick="cklph_wdl_shortlink_setup(\'tinyurl\')" >%3$s</button>
</div>
<div class="box">
<button class="button button-primary" name="activate_btn" type="button" id="tinyurl_activate_btn" onclick="cklph_wdl_activate_tinyurl()" ><span id="tinyurl-span" class="cklph-wdl-btn-text">%4$s</span></button>
</div>
</div>',
esc_attr( $tinyurl_img ),
esc_attr( $tinyurl_text ),
esc_attr( $setup_text ),
esc_attr( $active_tinyurl ),
);
}
/**
* Bitly shortener option template in settings page.
*
* @since 0.1.0
* @return void html elements for Bitly in settings page.
*/
public function cklph_wdl_bitly_shortener() {
$setup_text = esc_html__( 'Setup', 'woocommerce-direct-links' );
$url_option = get_option( 'url_options' );
$bitly_img = CKLPH_WDL_URL . 'admin/img/bitly.svg';
$bitly_text = esc_html__( 'Bitly', 'woocommerce-direct-link' );
$active_bitly = ( 'bitly' === $url_option ) ? esc_html__( 'Deactivate', 'woocommerce-direct-links' ) : esc_html__( 'Activate', 'woocommerce-direct-links' );
// Echo html tags for bitly.
echo sprintf(
'<div class="shortener">
<img class="logo" src="%1$s" alt="bitly">
<h3>%2$s</h3>
<div class="box">
<button class="button button-primary" name="setup_btn" type="button" id="bitly_setup_btn" onclick="cklph_wdl_shortlink_setup(\'bitly\')" >%3$s</button>
</div>
<div class="box">
<button class="button button-primary" name="activate_btn" type="button" id="bitly_activate_btn" onclick="cklph_wdl_activate_bitly()" ><span id="bitly-span" class="cklph-wdl-btn-text">%4$s</span></button>
</div>
</div>',
esc_attr( $bitly_img ),
esc_attr( $bitly_text ),
esc_attr( $setup_text ),
esc_attr( $active_bitly ),
);
}
/**
* Yourls shortener option template in settings page.
*
* @since 0.1.0
* @return void html elements for yourls in settings page.
*/
public function cklph_wdl_yourls_shortener() {
$setup_text = esc_html__( 'Setup', 'woocommerce-direct-links' );
$url_option = get_option( 'url_options' );
$yourls_img = CKLPH_WDL_URL . 'admin/img/yourls.svg';
$yourls_text = esc_html__( 'YoURLS', 'woocommerce-direct-link' );
$active_yourls = ( 'yourls' === $url_option ) ? esc_html__( 'Deactivate', 'woocommerce-direct-links' ) : esc_html__( 'Activate', 'woocommerce-direct-links' );
// Echo html tags for yourls.
echo sprintf(
'<div class="shortener">
<img class="logo" src="%1$s" alt="yourls">
<h3>%2$s</h3>
<div class="box">
<button class="button button-primary" name="setup_btn" type="button" id="yourls_setup_btn" onclick="cklph_wdl_shortlink_setup(\'yourls\')" >%3$s</button>
</div>
<div class="box">
<button class="button button-primary" name="activate_btn" type="button" id="yourls_activate_btn" onclick="cklph_wdl_activate_yourls()" ><span id="yourls-span" class="cklph-wdl-btn-text">%4$s</span></button>
</div>
</div>',
esc_attr( $yourls_img ),
esc_attr( $yourls_text ),
esc_attr( $setup_text ),
esc_attr( $active_yourls ),
);
}
/**
* Joturl shortener option template in settings page.
*
* @since 0.1.0
* @return void html elements for joturl in settings page.
*/
public function cklph_wdl_joturl_shortener() {
$setup_text = esc_html__( 'Setup', 'woocommerce-direct-links' );
$url_option = get_option( 'url_options' );
$joturl_img = CKLPH_WDL_URL . 'admin/img/joturl.png';
$joturl_text = esc_html__( 'JotURL', 'woocommerce-direct-link' );
$active_joturl = ( 'joturl' === $url_option ) ? esc_html__( 'Deactivate', 'woocommerce-direct-links' ) : esc_html__( 'Activate', 'woocommerce-direct-links' );
// Echo html tags for joturl.
echo sprintf(
'<div class="shortener">
<img class="logo" src="%1$s" alt="joturl">
<h3>%2$s</h3>
<div class="box">
<button class="button button-primary" name="setup_btn" type="button" id="yourls_setup_btn" onclick="cklph_wdl_shortlink_setup(\'joturl\')" >%3$s</button>
</div>
<div class="box">
<button class="button button-primary" name="activate_btn" type="button" id="joturl_activate_btn" onclick="cklph_wdl_activate_joturl()" ><span id="joturl-span" class="cklph-wdl-btn-text">%4$s</span></button>
</div>
</div>',
esc_attr( $joturl_img ),
esc_attr( $joturl_text ),
esc_attr( $setup_text ),
esc_attr( $active_joturl ),
);
}
}
}