- added a default css file to include to have a first handle
- cahnged get_path/url to root_path/url - changed path setup -> now automatic from inside plugin
This commit is contained in:
@@ -19,10 +19,9 @@ if (!defined('ABSPATH')) {
|
||||
|
||||
/*
|
||||
* plugin dir root
|
||||
PLGNTLS_class::set_root_dir( plugin_dir_path(__FILE__), plugin_dir_url(__FILE__) );
|
||||
*/
|
||||
include_once( plugin_dir_path(__FILE__) . '/utils/plgntls_class.php');
|
||||
PLGNTLS_class::set_root_dir( plugin_dir_path(__FILE__), plugin_dir_url(__FILE__) );
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -30,26 +29,27 @@ PLGNTLS_class::set_root_dir( plugin_dir_path(__FILE__), plugin_dir_url(__FILE__)
|
||||
* general inclusions
|
||||
*/
|
||||
// utils :
|
||||
include_once(PLGNTLS_class::get_path() . 'php/utils/globals.php');
|
||||
include_once(PLGNTLS_class::get_path() . 'utils/console_log.php');
|
||||
include_once(PLGNTLS_class::root_path() . 'php/utils/globals.php');
|
||||
include_once(PLGNTLS_class::root_path() . 'utils/console_log.php');
|
||||
|
||||
include_once(PLGNTLS_class::get_path() . 'php/admin_menu/example_menu.php');
|
||||
include_once(PLGNTLS_class::root_path() . 'php/admin_menu/example_menu.php');
|
||||
|
||||
include_once(PLGNTLS_class::get_path() . 'php/paypal/paypal.php');
|
||||
include_once(PLGNTLS_class::root_path() . 'php/paypal/paypal.php');
|
||||
|
||||
include_once(PLGNTLS_class::root_path() . '/php/user_infos.php');
|
||||
include_once(PLGNTLS_class::root_path() . '/php/hide_admin.php');
|
||||
//include_once(PLGNTLS_class::root_path() . '/php/menus.php');
|
||||
include_once(PLGNTLS_class::root_path() . 'php/register_partenaires.php');
|
||||
include_once(PLGNTLS_class::root_path() . 'php/redirections.php');
|
||||
include_once(PLGNTLS_class::root_path() . 'php/author_restriction.php');
|
||||
include_once(PLGNTLS_class::root_path() . 'php/filter_mail.php');
|
||||
include_once(PLGNTLS_class::root_path() . 'php/prof_check_page.php');
|
||||
include_once(PLGNTLS_class::root_path() . 'php/renew_card.php');
|
||||
|
||||
include_once(PLGNTLS_class::get_path() . '/php/user_infos.php');
|
||||
include_once(PLGNTLS_class::get_path() . '/php/hide_admin.php');
|
||||
//include_once(PLGNTLS_class::get_path() . '/php/menus.php');
|
||||
include_once(PLGNTLS_class::get_path() . 'php/register_partenaires.php');
|
||||
include_once(PLGNTLS_class::get_path() . 'php/redirections.php');
|
||||
include_once(PLGNTLS_class::get_path() . 'php/author_restriction.php');
|
||||
include_once(PLGNTLS_class::get_path() . 'php/filter_mail.php');
|
||||
include_once(PLGNTLS_class::get_path() . 'php/prof_check_page.php');
|
||||
include_once(PLGNTLS_class::get_path() . 'php/renew_card.php');
|
||||
|
||||
// form builder patch :
|
||||
//include_once(PLGNTLS_class::get_path() . 'php/form_builder_patch/url_validation.php');
|
||||
//include_once(PLGNTLS_class::get_path() . 'php/form_builder_patch/multiple_modals.php');
|
||||
//include_once(PLGNTLS_class::root_path() . 'php/form_builder_patch/url_validation.php');
|
||||
//include_once(PLGNTLS_class::root_path() . 'php/form_builder_patch/multiple_modals.php');
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
|
||||
import { resultMessage } from './result_message.js';
|
||||
import { PLGNTLS_fetch } from '../../utils/plgntls_fetch.js';
|
||||
|
||||
|
||||
/*
|
||||
* @see https://developer.paypal.com/docs/checkout/standard/integrate/#link-integratebackend
|
||||
*
|
||||
|
||||
@@ -18,7 +18,7 @@ if (!defined('ABSPATH')) {
|
||||
function add_my_jquery_patch()
|
||||
{
|
||||
$handle = 'jquery_validator_url_patch';
|
||||
$url = PLGNTLS_class::get_url() . 'js/form_builder_patch/url_validation.js';
|
||||
$url = PLGNTLS_class::root_url() . 'js/form_builder_patch/url_validation.js';
|
||||
$dependencies = array('de_fb_validate');
|
||||
$version = '';
|
||||
$defer = true;
|
||||
|
||||
@@ -9,14 +9,14 @@ if (!defined('ABSPATH')) {
|
||||
|
||||
|
||||
|
||||
include_once(PLGNTLS_class::get_path() . '/php/utils/http_errors.php');
|
||||
include_once(PLGNTLS_class::get_path() . '/php/paypal/route_api_utils.php');
|
||||
include_once(PLGNTLS_class::get_path() . '/php/paypal/user_can_pay.php');
|
||||
include_once(PLGNTLS_class::get_path() . '/php/paypal/update_user_payment.php');
|
||||
include_once(PLGNTLS_class::get_path() . '/php/paypal/shortcode.php');
|
||||
include_once(PLGNTLS_class::get_path() . '/php/paypal/route_api_orders.php');
|
||||
include_once(PLGNTLS_class::get_path() . '/php/paypal/route_api_orders_capture.php');
|
||||
include_once(PLGNTLS_class::get_path() . '/php/paypal/routes.php');
|
||||
include_once(PLGNTLS_class::root_path() . '/php/utils/http_errors.php');
|
||||
include_once(PLGNTLS_class::root_path() . '/php/paypal/route_api_utils.php');
|
||||
include_once(PLGNTLS_class::root_path() . '/php/paypal/user_can_pay.php');
|
||||
include_once(PLGNTLS_class::root_path() . '/php/paypal/update_user_payment.php');
|
||||
include_once(PLGNTLS_class::root_path() . '/php/paypal/shortcode.php');
|
||||
include_once(PLGNTLS_class::root_path() . '/php/paypal/route_api_orders.php');
|
||||
include_once(PLGNTLS_class::root_path() . '/php/paypal/route_api_orders_capture.php');
|
||||
include_once(PLGNTLS_class::root_path() . '/php/paypal/routes.php');
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -138,12 +138,14 @@ function failure_payment_for_user_CIPF($user_id, $order_id, $status) {
|
||||
|
||||
$acf_id = 'user_'.$user_id;
|
||||
|
||||
|
||||
/*
|
||||
* remove the order_id from user meta
|
||||
*
|
||||
*/
|
||||
delete_user_meta($user_id, $meta_order_id, $order_id);
|
||||
|
||||
|
||||
/*
|
||||
* change payement status to failed
|
||||
* - 'started' -> at order creation
|
||||
@@ -156,13 +158,11 @@ function failure_payment_for_user_CIPF($user_id, $order_id, $status) {
|
||||
|
||||
|
||||
/*
|
||||
* change user profil :
|
||||
* - to active
|
||||
* - card state is renewal
|
||||
* other changes on user :
|
||||
* - pofil is inactive
|
||||
*
|
||||
*/
|
||||
update_field($prof_is_activ['_name'], $prof_is_activ['activ'], $acf_id);
|
||||
update_field($acf_card_state['_name'], $acf_card_state['renew'], $acf_id);
|
||||
update_field($prof_is_activ['_name'], $prof_is_activ['inactiv'], $acf_id);
|
||||
}
|
||||
|
||||
|
||||
@@ -188,12 +188,6 @@ function validate_payment_for_user_CIPF($user_id, $order_id) {
|
||||
*/
|
||||
delete_user_meta($user_id, $meta_order_id, $order_id);
|
||||
|
||||
/*
|
||||
* change payement status to success
|
||||
*
|
||||
*/
|
||||
update_field($acf_payment_status['_name'], $acf_payment_status['success'], $acf_id);
|
||||
|
||||
/*
|
||||
* acf uses 'Y-m-d H:i:s' format : https://www.advancedcustomfields.com/resources/date-time-picker/
|
||||
*
|
||||
@@ -246,15 +240,15 @@ function validate_payment_for_user_CIPF($user_id, $order_id) {
|
||||
update_field($acf_card_expiration['_name'], $date_plus_one_year->format($acf_date_format), $acf_id);
|
||||
|
||||
/*
|
||||
* change user profil :
|
||||
* - to active
|
||||
* change user :
|
||||
* - profile is active
|
||||
* - card state is renewal
|
||||
* - cannot renew
|
||||
* - payement status is success
|
||||
*
|
||||
*/
|
||||
update_field($prof_is_activ['_name'], $prof_is_activ['activ'], $acf_id);
|
||||
update_field($acf_card_state['_name'], $acf_card_state['renew'], $acf_id);
|
||||
//update_field($acf_prof_can_renew['_name'], $acf_prof_can_renew['cannot'] , $acf_id);
|
||||
update_field($acf_payment_status['_name'], $acf_payment_status['success'], $acf_id);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -30,9 +30,9 @@ if (!defined('ABSPATH')) {
|
||||
* array( // files added in order by types
|
||||
* 'path/to/style1.css', //
|
||||
* 'path/to/script1.js', //
|
||||
* 'path/to/style2.css', // -> depends on style1.css
|
||||
* 'style1_css' => 'path/to/style2.css', // -> depends on style1.css
|
||||
* 'http://my_url1.com', //
|
||||
* 'path/to/script2.js', // -> depends on script1.js
|
||||
* 'script1_js' => 'path/to/script2.js', // -> depends on script1.js
|
||||
* 'path/to/file1.html', // | will be returned
|
||||
* 'path/to/file2.html', // -> | as expanded html
|
||||
* 'path/to/file3.html', // | in the order included
|
||||
@@ -105,6 +105,10 @@ class PLGNTLS_class
|
||||
|
||||
|
||||
private static $_DEBUG_INFOS = false;
|
||||
private static $_plugin_dir_path;
|
||||
private static $_plugin_name;
|
||||
private static $_file_dir_path;
|
||||
private static $_file_name;
|
||||
private static $_root_path;
|
||||
private static $_root_url;
|
||||
|
||||
@@ -115,9 +119,11 @@ class PLGNTLS_class
|
||||
private $_css_dependencies;
|
||||
private $_scripts_attributes;
|
||||
|
||||
/**
|
||||
*/
|
||||
/*
|
||||
*/
|
||||
public function __construct() {
|
||||
if (!isset(self::$_plugin_name, self::$_file_name, self::$_file_dir_path, self::$_plugin_dir_path))
|
||||
self::set_root_dir();
|
||||
$this->_prefix = "PLGNTLS";
|
||||
$this->_first_script = null;
|
||||
$this->_first_style = null;
|
||||
@@ -126,22 +132,42 @@ class PLGNTLS_class
|
||||
$this->_scripts_attributes = array();
|
||||
}
|
||||
|
||||
/**
|
||||
* can be used before class is instanciated :
|
||||
* PLGNTLS_class::set_root_dir( plugin_dir_path(__FILE__), plugin_dir_url(__FILE__) );
|
||||
*/
|
||||
public static function set_root_dir($path, $url) {
|
||||
if (isset( self::$_root_path ))
|
||||
/*
|
||||
* ex:
|
||||
* /home/www-data/cipf_plugin/php/test/test2/test3/test.php
|
||||
* _plugin_dir_path /home/www-data
|
||||
* _plugin_name cipf_plugin
|
||||
* _file_dir_path php/test/test2/test3
|
||||
* _file_name test.php
|
||||
* _root_path /home/www-data/cipf_plugin/
|
||||
*
|
||||
* /home/www-data/cipf_plugin/test.php
|
||||
* _plugin_dir_path /home/www-data
|
||||
* _plugin_name cipf_plugin
|
||||
* _file_dir_path ''
|
||||
* _file_name test.php
|
||||
* _root_path /home/www-data/cipf_plugin/
|
||||
*
|
||||
*/
|
||||
private static function set_root_dir() {
|
||||
if (isset(self::$_plugin_name, self::$_file_name, self::$_file_dir_path, self::$_plugin_dir_path))
|
||||
return ;
|
||||
if (isset( self::$_root_url ))
|
||||
return ;
|
||||
self::$_root_path = $path;
|
||||
self::$_root_url = $url;
|
||||
$exploded_plugin_path = explode('/', plugin_basename( __FILE__ ));
|
||||
self::$_plugin_name = array_shift($exploded_plugin_path);
|
||||
self::$_file_name = array_pop($exploded_plugin_path);
|
||||
self::$_file_dir_path = implode('/', $exploded_plugin_path);
|
||||
self::$_plugin_dir_path = str_replace('/'.plugin_basename(__DIR__).'/', '', plugin_dir_path(__FILE__));
|
||||
self::$_root_path = self::$_plugin_dir_path.'/'.self::$_plugin_name.'/';
|
||||
self::$_root_url = plugins_url(self::$_plugin_name.'/');
|
||||
}
|
||||
public static function get_path() {
|
||||
public static function root_path() {
|
||||
if (!isset(self::$_plugin_name, self::$_file_name, self::$_file_dir_path, self::$_plugin_dir_path))
|
||||
self::set_root_dir();
|
||||
return(self::$_root_path);
|
||||
}
|
||||
public static function get_url() {
|
||||
public static function root_url() {
|
||||
if (!isset(self::$_plugin_name, self::$_file_name, self::$_file_dir_path, self::$_plugin_dir_path))
|
||||
self::set_root_dir();
|
||||
return(self::$_root_url);
|
||||
}
|
||||
|
||||
@@ -162,8 +188,10 @@ class PLGNTLS_class
|
||||
public function add_to_front($srcs_arr = null, $vars = null) {
|
||||
if (!is_array($vars))
|
||||
$vars = array();
|
||||
if (!is_null($srcs_arr))
|
||||
if (!is_null($srcs_arr)) {
|
||||
$this->add_fetch($srcs_arr, $vars);
|
||||
$this->add_default_css($srcs_arr, $vars);
|
||||
}
|
||||
|
||||
$srcs = array();
|
||||
foreach($srcs_arr as $src_key => $src_value) {
|
||||
@@ -199,18 +227,18 @@ class PLGNTLS_class
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* for fetch, we add the file script that contains the fetch function
|
||||
* it is an es6 module with the export keyword
|
||||
* that way, it can also be used by modules scripts
|
||||
* to achieve that, we wouldn't need to include it here though
|
||||
* but we need that the fetch function is also available for inline scripts
|
||||
* so we could attach a copy of the script file without the export keyword
|
||||
* but instead, inside the file, we add the fetch function to the global scope
|
||||
*/
|
||||
/*
|
||||
* for fetch, we add the file script that contains the fetch function
|
||||
* it is an es6 module with the export keyword
|
||||
* that way, it can also be used by modules scripts
|
||||
* to achieve that, we wouldn't need to include it here though
|
||||
* but we need that the fetch function is also available for inline scripts
|
||||
* so we could attach a copy of the script file without the export keyword
|
||||
* but instead, inside the file, we add the fetch function to the global scope
|
||||
*/
|
||||
private function add_fetch(&$srcs_arr, &$vars) {
|
||||
// add fetch script at beginning of scripts list
|
||||
array_unshift($srcs_arr, array("utils/plgntls_fetch.js", 'type'=>'module'));
|
||||
array_unshift($srcs_arr, array(self::$_file_dir_path."/plgntls_fetch.js", 'type'=>'module'));
|
||||
// for the custom endpoints in rest api to work
|
||||
// they need to have a nonce named 'wp_rest'
|
||||
// see : https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/
|
||||
@@ -220,34 +248,39 @@ class PLGNTLS_class
|
||||
$vars = array_merge($vars, $fetch_url);
|
||||
}
|
||||
|
||||
private function add_default_css(&$srcs_arr, &$vars) {
|
||||
// add default css file at beginning of style list
|
||||
array_unshift($srcs_arr, self::$_file_dir_path."/plgntls_default.css");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @param two arguments :
|
||||
* 1. html files to include in front
|
||||
* - can be a string of 1 filename
|
||||
* - or an array of strings of filenames
|
||||
* ( https://stackoverflow.com/q/4747876/9497573 )
|
||||
* - it's probably better to only add 1 file, and let it include other files
|
||||
* 2. list of variables to make available to this files
|
||||
* - in the form of key => val
|
||||
* - recommanded to do it with compact()
|
||||
* ex: create_html( "file.html", compact("var1","var2",) );
|
||||
* ex: create_html( array("file1.html", "file2.html"), array("var1"=>"value") );
|
||||
* @return a string of html code
|
||||
*
|
||||
* using ob_start() and ob_get_clean()
|
||||
* allows to have php expansion inside the html loaded
|
||||
* in opposition to the methode file_get_contents()
|
||||
*
|
||||
* https://stackoverflow.com/a/4402045/9497573
|
||||
*/
|
||||
|
||||
/*
|
||||
* @param two arguments :
|
||||
* 1. html files to include in front
|
||||
* - can be a string of 1 filename
|
||||
* - or an array of strings of filenames
|
||||
* ( https://stackoverflow.com/q/4747876/9497573 )
|
||||
* - it's probably better to only add 1 file, and let it include other files
|
||||
* 2. list of variables to make available to this files
|
||||
* - in the form of key => val
|
||||
* - recommanded to do it with compact()
|
||||
* ex: create_html( "file.html", compact("var1","var2",) );
|
||||
* ex: create_html( array("file1.html", "file2.html"), array("var1"=>"value") );
|
||||
* @return a string of html code
|
||||
*
|
||||
* using ob_start() and ob_get_clean()
|
||||
* allows to have php expansion inside the html loaded
|
||||
* in opposition to the methode file_get_contents()
|
||||
*
|
||||
* https://stackoverflow.com/a/4402045/9497573
|
||||
*/
|
||||
private function create_html($files = null, $vars = null) {
|
||||
if (is_null($files))
|
||||
return null;
|
||||
$plgn_dir = $this->get_path();
|
||||
$plgn_dir = $this->root_path();
|
||||
if (!is_null($vars))
|
||||
extract($vars);
|
||||
|
||||
@@ -261,18 +294,18 @@ class PLGNTLS_class
|
||||
return $html;
|
||||
}
|
||||
|
||||
/**
|
||||
* pass variables to js front as global variables
|
||||
* @param array : list of key => value
|
||||
* with the key being name of the variable, like this :
|
||||
* 'my_var' => 'value',
|
||||
* simpler way to do it is to use compact when calling the function :
|
||||
* add_var_to_front(compact("var1", "var2", "var3"));
|
||||
* @param string (optionnal) : name of first embended script that need these variables
|
||||
* (it will be available to this script and all followings)
|
||||
* this name is the filename + "_" + extension :
|
||||
* init.js -> init_js
|
||||
*/
|
||||
/*
|
||||
* pass variables to js front as global variables
|
||||
* @param array : list of key => value
|
||||
* with the key being name of the variable, like this :
|
||||
* 'my_var' => 'value',
|
||||
* simpler way to do it is to use compact when calling the function :
|
||||
* add_var_to_front(compact("var1", "var2", "var3"));
|
||||
* @param string (optionnal) : name of first embended script that need these variables
|
||||
* (it will be available to this script and all followings)
|
||||
* this name is the filename + "_" + extension :
|
||||
* init.js -> init_js
|
||||
*/
|
||||
private function add_vars_to_front($vars_arr)
|
||||
{
|
||||
if (is_null($this->_first_script))
|
||||
@@ -323,16 +356,16 @@ class PLGNTLS_class
|
||||
add_filter( 'wp_script_attributes', fn($attr)=>$this->add_attributes_to_script($attr), 10, 1 );
|
||||
|
||||
/*
|
||||
* uncomment to print all enqueued files, can be usefull
|
||||
*/
|
||||
/*
|
||||
global $wp_scripts;
|
||||
error_log("wp_scripts->queue:");
|
||||
error_log(json_encode($wp_scripts->queue));
|
||||
global $wp_styles;
|
||||
error_log("wp_styles->queue:");
|
||||
error_log(json_encode($wp_styles->queue));
|
||||
*/
|
||||
* uncomment to print all enqueued files, can be usefull
|
||||
*/
|
||||
/*
|
||||
global $wp_scripts;
|
||||
error_log("wp_scripts->queue:");
|
||||
error_log(json_encode($wp_scripts->queue));
|
||||
*/
|
||||
global $wp_styles;
|
||||
error_log("wp_styles->queue:");
|
||||
error_log(json_encode($wp_styles->queue));
|
||||
}
|
||||
private function add_script($script, $previous_js_basename) {
|
||||
if (is_null($this->_first_script))
|
||||
@@ -352,22 +385,12 @@ class PLGNTLS_class
|
||||
$handle = $src->depends;
|
||||
if ($handle === null || empty($handle))
|
||||
$handle = $this->_first_script;
|
||||
if ($handle === null || empty($handle)) {
|
||||
global $wp_scripts;
|
||||
$script_queue = $wp_scripts->queue;
|
||||
$handle = array_pop($script_queue);
|
||||
}
|
||||
wp_add_inline_script($handle, $src->src, 'before');
|
||||
}
|
||||
private function add_inline_style($src) {
|
||||
$handle = $src->depends;
|
||||
if ($handle === null || empty($handle))
|
||||
$handle = $this->_first_style;
|
||||
if ($handle === null || empty($handle)) {
|
||||
global $wp_styles;
|
||||
$style_queue = $wp_styles->queue;
|
||||
$handle = array_pop($style_queue);
|
||||
}
|
||||
wp_add_inline_style($handle, $src->src);
|
||||
}
|
||||
|
||||
@@ -452,7 +475,6 @@ class PLGNTLS_class
|
||||
];
|
||||
|
||||
// 7. depends
|
||||
$src->depends = '';
|
||||
if (is_string($key))
|
||||
$src->depends = $key;
|
||||
|
||||
@@ -495,8 +517,7 @@ class PLGNTLS_class
|
||||
// basename handle
|
||||
// https://www.url.com/route -> www.url.com/route -> www_url_com_route
|
||||
// path/to/script.js -> script.js -> script_js
|
||||
if ($src->ext === "url")
|
||||
{
|
||||
if ($src->ext === "url") {
|
||||
$url = parse_url($src->src);
|
||||
$src->basename = $url['host'] . $url['path'];
|
||||
}
|
||||
@@ -513,8 +534,8 @@ class PLGNTLS_class
|
||||
$src->version = null;
|
||||
}
|
||||
else {
|
||||
$src->url = $this->get_url().$src->src;
|
||||
$src->path = $this->get_path().$src->src;
|
||||
$src->url = $this->root_url().$src->src;
|
||||
$src->path = $this->root_path().$src->src;
|
||||
$src->version = date("ymd-Gis", filemtime($src->path));
|
||||
}
|
||||
|
||||
|
||||
4
plugins/cipf_plugin/utils/plgntls_default.css
Normal file
4
plugins/cipf_plugin/utils/plgntls_default.css
Normal file
@@ -0,0 +1,4 @@
|
||||
/*
|
||||
* this css file will be automatically added to front by PLGNTLS_class
|
||||
* no need to write any style here, but you can if you want
|
||||
*/
|
||||
Reference in New Issue
Block a user