2017-10-09 11 views
0

Salut et merci d'avoir lu mon message.WHMCS et changement de lien de la maison avec variable

J'ai installé WHMCS avec le multi-marque ad-don, ce qui signifie que j'ai plusieurs marques sur WHMCS avec une seule installation. L'URL est toujours http://billing.branddomain.com/. Tous ont un site Web statique principal sur http://www.branddomain.com/.

Je veux que le bouton d'accueil pointe vers le site statique, mais le problème est que je ne peux pas mettre une URL statique dans le code car elle est différente par marque. Par conséquent, avec PHP, je supprime l'URL de la barre d'adresse, supprimant «facturation» et le remplacer par «www». Them J'essaie de changer l'URL du lien d'accueil dans le menu principal de WHMCS à cet endroit. Cela se fait en créant un fichier PHP dans whmcs répertoire/includes/crochets

<?php 
$aedit_just_domain = preg_replace("/^(.*\.)?([^.]*\..*)$/", "$2", $_SERVER['HTTP_HOST']); 
$aedit_homepageurl = "http://www.". $aedit_just_domain ."/"; 

use WHMCS\View\Menu\Item as MenuItem; 

add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar) 
{ 
    $redirect = $aedit_homepageurl; 
    if (!is_null($primaryNavbar->getChild('Home'))) { 
      $primaryNavbar->getChild('Home') 
         ->setURI($redirect); 
    } 
}); 

Ce travail ne marche pas comme pour une raison quelconque je ne peux pas mettre une variable là-dedans. Quand je fais:

<?php 
use WHMCS\View\Menu\Item as MenuItem; 

add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar) 
{ 
    $redirect = 'http://www.google.com/'; 
    if (!is_null($primaryNavbar->getChild('Home'))) { 
      $primaryNavbar->getChild('Home') 
         ->setURI($redirect); 
    } 
}); 

Cela fonctionne, mais fonctionne maintenant avec l'URL statique www.google.com. Évidemment j'ai besoin que ce soit une variable comme avec $ aedit_homepageurl.

Y a-t-il quelqu'un qui peut m'aider avec ça?

Répondre

1

$aedit_homepageurl n'est pas accessible à l'intérieur de la fonction par défaut. Vous avez 2 options:

1- Vous pouvez utiliser mot-clé global pour accéder $aedit_homepageurl variable:

<?php 
$aedit_just_domain = preg_replace("/^(.*\.)?([^.]*\..*)$/", "$2", $_SERVER['HTTP_HOST']); 
$aedit_homepageurl = "http://www.". $aedit_just_domain ."/"; 

use WHMCS\View\Menu\Item as MenuItem; 

add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar) 
{ 
    global $aedit_homepageurl; 
    $redirect = $aedit_homepageurl; 
    if (!is_null($primaryNavbar->getChild('Home'))) { 
      $primaryNavbar->getChild('Home') 
         ->setURI($redirect); 
    } 
}); 

2- Déplacer les 2 premières lignes dans la fonction:

<?php 
add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar) 
{ 
    $aedit_just_domain = preg_replace("/^(.*\.)?([^.]*\..*)$/", "$2", $_SERVER['HTTP_HOST']); 
    $aedit_homepageurl = "http://www.". $aedit_just_domain ."/"; 

    $redirect = $aedit_homepageurl; 
    if (!is_null($primaryNavbar->getChild('Home'))) { 
      $primaryNavbar->getChild('Home') 
         ->setURI($redirect); 
    } 
}); 
+0

Merci beaucoup . Je l'ai fait fonctionner avec la 2ème option. Je ne peux pas croire que je n'y avais pas pensé moi-même. J'ai déjà passé 20 heures énigmatiques. Vous m'avez sauvé de 20 heures de plus. – ManouHH

+0

De rien. – wesamly