$value) { $$key = $value; } } } ob_start(); include $url; return ob_get_clean(); } /** * Returns URL of WordPress items such as site, admin, plugins, ANA plugin etc. * @param string $type * @return string */ public static function URL($type = 'site') { // Make it lowercase $type = strtolower($type); $url = ""; // Frontend if(in_array($type, array('frontend','site'))) $url = site_url().'/'; // Backend elseif(in_array($type, array('backend','admin'))) $url = admin_url(); // WordPress Content directory URL elseif($type === 'content') $url = content_url().'/'; // WordPress plugins directory URL elseif($type === 'plugin') $url = plugins_url().'/'; // WordPress include directory URL elseif($type === 'include') $url = includes_url(); // Webnus MEC plugin URL elseif($type === 'cred') { // If plugin installed regularly on plugins directory if(!defined('CRED_IN_THEME')) $url = plugins_url() .'/'._CRED_DIRNAME_.'/'; // If plugin embeded into one theme else $url = get_template_directory_uri().'/plugins/'._CRED_DIRNAME_.'/'; } return $url; } /** * Returns absolute path of file * @param string $type * @return string */ public static function full_path() { $path = WP_PLUGIN_DIR .'/'._CRED_DIRNAME_.'/'; return $path; } /** * Return an acf option based on the field name * @return string, object or array depending on the field type * */ public static function get_acf_audit_option($field_name) { if(empty($field_name) && !isset($field_name)) return false; $field = get_field($field_name, 'option'); if(!$field) return false; return $field; } public static function get_groups_vars() { $vars_groups = array( 'pret_personnel__tous_motifs__achats_divers' => self::get_acf_audit_option('pret_personnel__tous_motifs__achats_divers'), 'financement_frais_de_notaire' => self::get_acf_audit_option('financement_frais_de_notaire'), 'credit_travaux__renovation__energie' => self::get_acf_audit_option('credit_travaux__renovation__energie'), 'financement_vehicule_neuf' => self::get_acf_audit_option('financement_vehicule_neuf'), 'financement_vehicule_doccasion_moins_de_3_ans' => self::get_acf_audit_option('financement_vehicule_d’occasion_moins_de_3_ans'), 'financement_vehicule_doccasion_plus_de_3_ans' => self::get_acf_audit_option('financement_vehicule_d’occasion_plus_de_3_ans'), 'financement_mobilhome_et_caravane_de_moins_de_3_ans' => self::get_acf_audit_option('financement_mobilhome_et_caravane_de_moins_de_3_ans'), 'credit_hypothecaire_classique' => self::get_acf_audit_option('credit_hypothecaire_classique'), 'credit_hypothecaire_social' => self::get_acf_audit_option('credit_hypothecaire_social'), 'achat_maison_de_rapport' => self::get_acf_audit_option('achat_maison_de_rapport'), 'credit_pont' => self::get_acf_audit_option('credit_pont'), 'independants_et_entreprises_en_difficultes' => self::get_acf_audit_option('independants_et_entreprises_en_difficultes'), 'regroupement_de_credit__rachats_de_credits' => self::get_acf_audit_option('regroupement_de_credit__rachats_de_credits'), 'fonds_roulement_independants' => self::get_acf_audit_option('fonds_roulement_independants'), ); return $vars_groups; } public static function create_db_tables() { global $wpdb; require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); $charset_collate = $wpdb->get_charset_collate(); /** * CREATE TABLE `$wpdb->dbname`.`cdf_Agences` ( `idAgences` INT NOT NULL AUTO_INCREMENT, `Nom_agence` VARCHAR(45) NULL, `description_agence` VARCHAR(255) NULL, PRIMARY KEY (`idAgences`)) ENGINE = InnoDB; CREATE TABLE `$wpdb->dbname`.`cdf_Emails` ( `idEmails` INT NOT NULL AUTO_INCREMENT, `email` VARCHAR(45) NOT NULL, PRIMARY KEY (`idEmails`)) ENGINE = InnoDB; CREATE TABLE `$wpdb->dbname`.`cdf_Agences_emails` ( `FK_agence` INT NULL, `FK_email` INT NULL, `type_email` VARCHAR(45) NOT NULL, CONSTRAINT `FK_agence` FOREIGN KEY (`FK_agence`) REFERENCES `cdf_Agences` (`idAgences`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `FK_email` FOREIGN KEY (`FK_email`) REFERENCES `cdf_Emails` (`idEmails`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; */ $sql = " CREATE TABLE `$wpdb->dbname`.`cdf_Profession` ( `idprofession` INT NOT NULL AUTO_INCREMENT, `nom_profession` VARCHAR(45) NULL, PRIMARY KEY (`idprofession`)) ENGINE = InnoDB; CREATE TABLE `$wpdb->dbname`.`cdf_Options_credit_auto` ( `idOptions_credit_auto` INT NOT NULL AUTO_INCREMENT, `marque` VARCHAR(45) NULL, `date_immatriculation` DATE NULL, `nom_vendeur` VARCHAR(45) NULL, `adresse_vendeur` VARCHAR(45) NULL, `prix_vehicule` FLOAT NULL, `montant_accompte` FLOAT NULL, `montant_reprise` FLOAT NULL, `montant_emprunt` FLOAT NULL, `duree` INT NULL, PRIMARY KEY (`idOptions_credit_auto`)) ENGINE = InnoDB; CREATE TABLE `$wpdb->dbname`.`cdf_Options_credit_hypotecaire` ( `idOptions_credit_hypotecaire` INT NOT NULL AUTO_INCREMENT, `type_credit` VARCHAR(45) NULL, `prix_achat` FLOAT NULL, `prix_construction_tvac` FLOAT NULL, `frais_notaire_pays` FLOAT NULL, `valeur_batiment` FLOAT NULL, `fonds_propre` FLOAT NULL, `compromis_signe` INT NULL, `montant_revenu_cadastral` FLOAT NULL, `montant_a_emprunter` FLOAT NULL, `duree` INT NULL, PRIMARY KEY (`idOptions_credit_hypotecaire`)) ENGINE = InnoDB; CREATE TABLE `$wpdb->dbname`.`cdf_Credit` ( `idCredit` INT NOT NULL AUTO_INCREMENT, `type_credit` VARCHAR(45) NULL, `capital` VARCHAR(45) NULL, `duree` VARCHAR(45) NULL, `cout_total` VARCHAR(45) NULL, `mensualite` VARCHAR(45) NULL, `taux_nominal_annuel` VARCHAR(45) NULL, `rgpd` VARCHAR(45) NULL, `create_date` DATETIME NULL DEFAULT NULL, `last_update_date` DATETIME NULL DEFAULT NULL, `last_step` TINYINT NOT NULL DEFAULT '1', `token` VARCHAR(45) NULL, `FK_credit_auto` INT NULL, `FK_credit_hypothecaire` INT NULL, PRIMARY KEY (`idCredit`), INDEX `FK_credit_auto_idx` (`FK_credit_auto` ASC), INDEX `FK_credit_hypothecaire_idx` (`FK_credit_hypothecaire` ASC), CONSTRAINT `FK_credit_auto` FOREIGN KEY (`FK_credit_auto`) REFERENCES `cdf_Options_credit_auto` (`idOptions_credit_auto`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `FK_credit_hypothecaire` FOREIGN KEY (`FK_credit_hypothecaire`) REFERENCES `cdf_Options_credit_hypotecaire` (`idOptions_credit_hypotecaire`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; CREATE TABLE `$wpdb->dbname`.`cdf_Etat_civil` ( `idetat_civil` INT NOT NULL AUTO_INCREMENT, `nom_etat_civil` VARCHAR(45) NULL, PRIMARY KEY (`idetat_civil`)) ENGINE = InnoDB; CREATE TABLE `$wpdb->dbname`.`cdf_Emprunteur` ( `idemprunteur` INT NOT NULL AUTO_INCREMENT, `nom` VARCHAR(45) NULL, `num_registre_national` VARCHAR(45) NULL, `prenom` VARCHAR(45) NULL, `telephone` VARCHAR(45) NULL, `email` VARCHAR(45) NULL, `date_naissance` DATE NULL, `lieu_naissance` VARCHAR(45) NULL, `nationalité` VARCHAR(45) NULL, `num_carte_identite` VARCHAR(45) NULL, `carte_identite_validite` DATE NULL, `num_compte_bancaire` VARCHAR(45) NULL, `adresse` VARCHAR(45) NULL, `code_postal` INT NULL, `localite` VARCHAR(45) NULL, `pays` VARCHAR(45) NULL, `date_emmenagement` DATE NULL, `enfant_charge` INT NULL, `contract_type` VARCHAR(45) NULL, `nom_employeur` VARCHAR(45) NULL, `numero_entreprise` VARCHAR(45) NULL, `adresse_employeur` VARCHAR(45) NULL, `code_postal_employeur` VARCHAR(45) NULL, `localite_employeur` VARCHAR(45) NULL, `pays_employeur` VARCHAR(45) NULL, `date_engagement` DATE NULL, `salaire` FLOAT NULL, `cheque_repas` FLOAT NULL, `revenus_locatifs` FLOAT NULL, `chomage` FLOAT NULL, `autre_revenu_montant` FLOAT NULL, `autre_revenu_type` VARCHAR(45) NULL, `parent_emprunteur` INT NULL, `habitation_type` VARCHAR(45) NULL, `habitation_loyer` FLOAT NULL, `habitation_charge_hypothecaire` VARCHAR(45) NULL, `habitation_sans_charge_locative` VARCHAR(45) NULL, `remarques` TEXT NULL, `FK_demande_creditdirect` INT NULL, `FK_agence` INT NULL, `FK_profession` INT NULL, `FK_etat_civil` INT NULL, PRIMARY KEY (`idemprunteur`), INDEX `FK_profession_idx` (`FK_profession` ASC), INDEX `FK_agences_idx` (`FK_agence` ASC), INDEX `FK_demande_credit_idx` (`FK_demande_creditdirect` ASC), INDEX `FK_etat_civil_idx` (`FK_etat_civil` ASC), CONSTRAINT `FK_profession` FOREIGN KEY (`FK_profession`) REFERENCES `cdf_Profession` (`idprofession`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `FK_agences` FOREIGN KEY (`FK_agence`) REFERENCES `cdf_Agences` (`idAgences`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `FK_demande_credit` FOREIGN KEY (`FK_demande_creditdirect`) REFERENCES `cdf_Credit` (`idCredit`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `FK_etat_civil` FOREIGN KEY (`FK_etat_civil`) REFERENCES `cdf_Etat_civil` (`idetat_civil`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; CREATE TABLE `$wpdb->dbname`.`cdf_Type_creance` ( `idtype_creance` INT NOT NULL AUTO_INCREMENT, `nom_creance` VARCHAR(45) NULL, PRIMARY KEY (`idtype_creance`)) ENGINE = InnoDB; CREATE TABLE `$wpdb->dbname`.`cdf_Autre_credit` ( `idautrecredit` INT NOT NULL AUTO_INCREMENT, `banque` VARCHAR(45) NULL, `montant` FLOAT NULL, `duree_credit` INT NULL, `mensualite` INT NULL, `date_premiere_echeance` DATE NULL, `solde_restant_du` FLOAT NULL, `cloture` INT NULL, `solde` FLOAT NULL, `FK_type_creance` INT NULL, `FK_emprunteur` INT NULL, PRIMARY KEY (`idautrecredit`), INDEX `FK_type_creance_idx` (`FK_type_creance` ASC), INDEX `FK_emprunteur_idx` (`FK_emprunteur` ASC), CONSTRAINT `FK_type_creance` FOREIGN KEY (`FK_type_creance`) REFERENCES `cdf_Type_creance` (`idtype_creance`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `FK_emprunteur` FOREIGN KEY (`FK_emprunteur`) REFERENCES `cdf_Emprunteur` (`idemprunteur`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; "; dbDelta( $sql ); /** * Hydrate table Agence */ /* $result = $wpdb->get_results('SELECT * FROM cdf_Agences LIMIT 0,1'); if (empty($result)) { dbDelta( "INSERT INTO cdf_Agences (Nom_agence, description_agence) VALUES (\"Verviers\", NULL), (\"Mons\", NULL), (\"Liège\", NULL), (\"Arlon\", NULL);" ); } */ /** * Hydrate table Email */ /* $result = $wpdb->get_results('SELECT * FROM cdf_Emails LIMIT 0,1'); if (empty($result)) { dbDelta( "INSERT INTO cdf_Emails (email) VALUES (\"pat@credit-direct.be\"), (\"sylviane@credit-direct.be\"), (\"annick@credit-direct.be\");" ); } */ /** * Hydrate table Email */ /* $result = $wpdb->get_results('SELECT * FROM cdf_Agences_emails LIMIT 0,1'); if (empty($result)) { dbDelta( "INSERT INTO cdf_Agences_emails (FK_agence, FK_email, type_email) VALUES (1, 1, \"to\"), (2, 2, \"to\"), (2, 1, \"cc\"), (2, 3, \"cc\"), (3, 1, \"to\"), (4, 1, \"to\");" ); } */ /** * Hydrate table Etat_civil */ $result = $wpdb->get_results('SELECT * FROM cdf_Etat_civil LIMIT 0,1'); if (empty($result)) { dbDelta( "INSERT INTO cdf_Etat_civil (nom_etat_civil) VALUES (\"Célibataire\"), (\"Divorcé(e)\"), (\"Marié(e) avec contract de séparation de biens\"), (\"Marié(e) sans contract de séparation de biens\"), (\"Séparé(e)\"), (\"Veuf(ve)\");" ); } /** * Hydrate table Profession */ $result = $wpdb->get_results('SELECT * FROM cdf_Profession LIMIT 0,1'); if (empty($result)) { dbDelta( "INSERT INTO cdf_Profession (nom_profession) VALUES (\"Chômeur\"), (\"Employé\"), (\"Enseignant\"), (\"Fonctionnaire\"), (\"Indépendant\"), (\"Invalide\"), (\"Militaire\"), (\"Ouvrier\"), (\"Pensionné\"), (\"Policier\"), (\"Prépensionné\"), (\"Sans profession\");" ); } /** * Hydrate table Profession */ $result = $wpdb->get_results('SELECT * FROM cdf_Type_creance LIMIT 0,1'); if (empty($result)) { dbDelta( "INSERT INTO cdf_Type_creance (nom_creance) VALUES (\"Carte de crédit\"), (\"Crédit ballon\"), (\"Découvert bancaire\"), (\"Financement véhicule\"), (\"Leasing\"), (\"Pension alimentaire à payer\"), (\"Prêt à tempérament\"), (\"Prêt hypothécaire\"), (\"Réserve d'argent\");" ); } } public static function create_uploadr_page() { // Setup custom vars $author_id = 1; $total_step = 4; for($i=1; $i<=$total_step; $i++){ $possibleCurrentPage = get_page_by_path('credit-step' . $i); if (is_null($possibleCurrentPage)) { $step = array( 'comment_status' => 'closed', 'ping_status' => 'closed', 'post_author' => $author_id, 'post_name' => "credit-step" . $i, 'post_title' => "credit-step" . $i, 'post_status' => 'publish', 'post_type' => 'page', 'page_template' => 'credit-step' . $i ); $post_id = wp_insert_post($step); } } } public static function start_session() { if(!session_id()) { session_start(); } } public static function CRED_page_template($page_template) { if (!defined('WP_CREDIT_FORM_PATH')) { define('WP_CREDIT_FORM_PATH', dirname(__FILE__)); } if ( is_page( 'credit-step1' ) ) { $page_template = _CRED_BASE_PATH_ . '/app/controllers/credit-step1.php'; }elseif (is_page( 'credit-step2' )) { $page_template = _CRED_BASE_PATH_ . '/app/controllers/credit-step2.php'; }elseif (is_page( 'credit-step3' )) { $page_template = _CRED_BASE_PATH_ . '/app/controllers/credit-step3.php'; }elseif (is_page( 'credit-step4' )) { $page_template = _CRED_BASE_PATH_ . '/app/controllers/credit-step4.php'; }elseif (is_page( 'credit-step5' )) { $page_template = _CRED_BASE_PATH_ . '/app/controllers/credit-step5.php'; } return $page_template; } /** * */ public static function cred_register_post_type($name, $label, $singular_label, $plural_label, $icon, $genre,$support=array()) { $genre_labels = array( array('f' => 'Toutes', 'm' => 'Tous'), array('f' => 'Nouvelle', 'm' => 'Nouveau'), array('f' => 'trouvée', 'm' => 'trouvé'), array('f' => 'une', 'm' => 'un'), ); if(empty($support)) { $support = array( 'title', ); } register_post_type( $name, array( 'label' => $label, 'labels' => array( 'name' => $label, 'singular_name' => $singular_label, 'all_items' => $genre_labels[0][$genre].' les '.strtolower($plural_label), 'add_new_item' => 'Ajouter une '.strtolower($singular_label), 'edit_item' => 'Éditer '.$genre_labels[3][$genre].' '.strtolower($singular_label), 'new_item' => $genre_labels[1][$genre].' '.strtolower($singular_label), 'view_item' => 'Voir le '.strtolower($plural_label), 'search_items' => 'Rechercher parmi les '.strtolower($plural_label), 'not_found' => 'Pas de '.strtolower($plural_label).' trouvées', 'not_found_in_trash'=> 'Pas de '.strtolower($singular_label).' dans la corbeille', ), 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'show_in_nav_menus' => true, 'show_in_admin_bar' => true, 'menu_position' => 5, 'menu_icon' => $icon, 'can_export' => true, 'has_archive' => true, 'exclude_from_search' => false, 'publicly_queryable' => true, 'capability_type' => 'page', 'supports' => $support, 'has_archive' => true ) ); } public static function cred_register_post_taxonomy($name,$post_type, $label, $singular_label, $plural_label, $icon, $genre, $link_to_post_type = true) { $genre_labels = array( array('f' => 'Toutes', 'm' => 'Tous'), array('f' => 'Nouvelle', 'm' => 'Nouveau'), array('f' => 'trouvée', 'm' => 'trouvé'), array('f' => 'une', 'm' => 'un'), array('f' => 'utilisée', 'm' => 'utilisé'), ); register_taxonomy( $name, $post_type, array( 'label' => $label, 'labels' => array( 'name' => $label, 'singular_name' => $singular_label, 'all_items' => strtolower($singular_label), 'edit_item' => 'Éditer un '.strtolower($singular_label), 'view_item' => 'Voir '.$genre_labels[3][$genre].' '.strtolower($singular_label), 'update_item' => 'Mettre à jour '.$genre_labels[3][$genre].' '.strtolower($singular_label), 'add_new_item' => 'Ajouter '.$genre_labels[3][$genre].' '.strtolower($singular_label), 'new_item_name' => $genre_labels[1][$genre].' '.strtolower($singular_label), 'search_items' => 'Rechercher parmi les '.strtolower($plural_label), 'popular_items' => $singular_label.' les plus '.$genre_labels[4][$genre] ), 'hierarchical' => true, 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'show_in_nav_menus' => true, 'show_in_admin_bar' => true, 'show_admin_column' => true, 'menu_position' => 5, 'menu_icon' => $icon, 'can_export' => true, 'has_archive' => true, 'exclude_from_search' => false, 'publicly_queryable' => true, ) ); if($link_to_post_type) { register_taxonomy_for_object_type( $name, $post_type ); } } }