-
-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathplugin.php
More file actions
120 lines (100 loc) · 3.14 KB
/
Copy pathplugin.php
File metadata and controls
120 lines (100 loc) · 3.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<?php
/**
* Plugin Name: Socialify
* Description: Social Login for WordPress based the OAuth2 and HybridAuth
* Plugin URI: https://github.com/aiiddqd/socialify
* Author: aiiddqd
* Author URI: https://github.com/aiiddqd
* Text Domain: socialify
* Domain Path: /languages/
* GitHub Plugin URI: aiiddqd/socialify
* Requires PHP: 8.0
* Version: 0.9.250925
*/
namespace Socialify;
defined('ABSPATH') || die();
Plugin::init();
final class Plugin
{
/**
* Name of product
*
* @var string
*/
public static $name = 'Socialify';
/**
* Slug of the product for make a hungarian notations
* @var string
*/
public static $slug = 'socialify';
/**
* Save the $plugin_basename value for various frequent tasks
*
* @var string
*/
public static $plugin_basename = '';
public static $plugin_file_path = '';
public static $plugin_dir_path = '';
public static $plugin_dir_url = '';
public static $providers = [];
/**
* @var string - for grouping all settings (by Settings API)
*/
public static $settings_group = 'socialify_login_settings';
public static function init()
{
self::$plugin_basename = plugin_basename(__FILE__);
self::$plugin_file_path = __FILE__;
self::$plugin_dir_path = plugin_dir_path(__FILE__);
self::$plugin_dir_url = plugin_dir_url(__FILE__);
require_once __DIR__.'/vendor/autoload.php';
$files = glob(__DIR__.'/includes/*.php');
foreach ($files as $file) {
require_once $file;
}
add_action('plugins_loaded', [self::class, 'load_providers']);
add_filter("plugin_action_links_".self::$plugin_basename, [self::class, 'add_settings_url_to_plugins_list']);
add_action('wp_enqueue_scripts', [self::class, 'enqueue_styles']);
}
public static function enqueue_styles()
{
$path = 'assets/build.css';
$file_mtime = filemtime(self::$plugin_dir_path.$path);
$file_url = self::$plugin_dir_url.$path;
wp_enqueue_style('socialify-styles', $file_url, [], $file_mtime);
}
public static function load_providers()
{
self::$providers = apply_filters('socialify_providers', []);
foreach (self::$providers as $provider) {
if (is_a($provider, AbstractProvider::class, true)) {
$provider::load();
}
}
}
public static function get_providers()
{
return self::$providers;
}
/**
* Add Settings link in pligins list
*/
public static function add_settings_url_to_plugins_list($links)
{
$settings_link = sprintf('<a href="%s">%s</a>', admin_url('admin.php?page=socialify-settings'), __('Settings', self::$slug));
array_unshift($links, $settings_link);
return $links;
}
/**
* helper get_current_url
*
* @link https://wordpress.stackexchange.com/questions/274569/how-to-get-url-of-current-page-displayed
*
* @return string|void
*/
public static function get_current_url()
{
global $wp;
return home_url($wp->request);
}
}