File Editor
Directories:
.. (Back)
open-graph
schema
twitter
Files:
aioseo-helper.php
asset-helper.php
attachment-cleanup-helper.php
author-archive-helper.php
blocks-helper.php
capability-helper.php
crawl-cleanup-helper.php
curl-helper.php
current-page-helper.php
date-helper.php
environment-helper.php
first-time-configuration-notice-helper.php
home-url-helper.php
image-helper.php
import-cursor-helper.php
import-helper.php
indexable-helper.php
indexable-to-postmeta-helper.php
indexing-helper.php
language-helper.php
meta-helper.php
notification-helper.php
options-helper.php
pagination-helper.php
permalink-helper.php
post-helper.php
post-type-helper.php
primary-term-helper.php
product-helper.php
redirect-helper.php
require-file-helper.php
robots-helper.php
robots-txt-helper.php
sanitization-helper.php
score-icon-helper.php
short-link-helper.php
site-helper.php
social-profiles-helper.php
string-helper.php
taxonomy-helper.php
url-helper.php
user-helper.php
wincher-helper.php
woocommerce-helper.php
wordpress-helper.php
wpdb-helper.php
Create New File
Create
Edit File: wincher-helper.php
<?php namespace Yoast\WP\SEO\Helpers; use WPSEO_Shortlinker; use Yoast\WP\SEO\Conditionals\Non_Multisite_Conditional; use Yoast\WP\SEO\Config\Wincher_Client; use Yoast\WP\SEO\Exceptions\OAuth\Authentication_Failed_Exception; use Yoast\WP\SEO\Exceptions\OAuth\Tokens\Empty_Property_Exception; use Yoast\WP\SEO\Exceptions\OAuth\Tokens\Empty_Token_Exception; /** * A helper object for Wincher matters. */ class Wincher_Helper { /** * Holds the Options Page helper instance. * * @var Options_Helper */ protected $options; /** * Options_Helper constructor. * * @param Options_Helper $options The options helper. */ public function __construct( Options_Helper $options ) { $this->options = $options; } /** * Checks if the integration should be active for the current user. * * @return bool Whether the integration is active. */ public function is_active() { $conditional = new Non_Multisite_Conditional(); if ( ! $conditional->is_met() ) { return false; } if ( ! \current_user_can( 'publish_posts' ) && ! \current_user_can( 'publish_pages' ) ) { return false; } return (bool) $this->options->get( 'wincher_integration_active', true ); } /** * Checks if the user is logged in to Wincher. * * @return bool The Wincher login status. */ public function login_status() { try { $wincher = \YoastSEO()->classes->get( Wincher_Client::class ); } catch ( Empty_Property_Exception $e ) { // Return false if token is malformed (empty property). return false; } // Get token (and refresh it if it's expired). try { $wincher->get_tokens(); } catch ( Authentication_Failed_Exception $e ) { return false; } catch ( Empty_Token_Exception $e ) { return false; } return $wincher->has_valid_tokens(); } /** * Returns the Wincher links that can be used to localize the global admin * script. Mainly exists to avoid duplicating these links in multiple places * around the code base. * * @return string[] */ public function get_admin_global_links() { return [ 'links.wincher.login' => 'https://app.wincher.com/login?utm_medium=plugin&utm_source=yoast&referer=yoast&partner=yoast', 'links.wincher.about' => WPSEO_Shortlinker::get( 'https://yoa.st/dashboard-about-wincher' ), 'links.wincher.pricing' => WPSEO_Shortlinker::get( 'https://yoa.st/wincher-popup-pricing' ), 'links.wincher.website' => WPSEO_Shortlinker::get( 'https://yoa.st/wincher-popup' ), 'links.wincher.upgrade' => WPSEO_Shortlinker::get( 'https://yoa.st/wincher-upgrade' ), ]; } }
Save Changes
Rename File
Rename