2014-10-22 4 views
0

В настоящее время у меня возникают некоторые проблемы с попыткой включить в Wordpress плагин 2 библиотеки классов (1. Form Builder & 2. Custom Emailer).Доступ к объектам PHP из функций Wordpress

фон:

  1. Form Builder (на основе модифицированной версии PFBC http://www.imavex.com/pfbc3.x-php5/index.php) - Использование для генерации форм для быстрого веба-разработки.

  2. Custom Emailer - Внутренняя библиотека, которая предоставляет API для другой системы, которую мы разработали.

Сложность, похоже, выводит javascript в нижнем колонтитуле для оптимизации скорости страницы, с использованием перехватов Wordpress для вывода в нижнем колонтитуле.

Мой вопрос в том, как сделать мой код, чтобы я мог обращаться к Классам из других функций.

например. echo $ email-> formid();

function wpplugin_blah_forms_init_form() 
{ 
    $email = new DealerSolutionsEmailGateway(); 
    $email->formid = 'blah'; // ID of the <form> 
} 

function wpplugin_blah_forms_show($atts) 
{ 
    // Get Shortcode parameter "form" 
    $forms = shortcode_atts(array('form' => '', 'view' => 'SideBySide'), $atts); 

    // Init EmailProcessor 
    wpplugin_blah_forms_init_form(); 

    echo $email->formid(); 

    $form = new Form("General"); 
    //$form->configure($form_config); 

    $form->addElement(new Element\HTML($theme)); 
    $form->addElement(new Element\HTML('<h2>General Enquiry</h2>')); 
    $form->addElement(new Element\Hidden("form", "General")); 
    $form->addElement(new Element\HTML('<legend>Personal Details</legend>')); 
    $form->addElement(new Element\Button("Submit My Enquiry")); 
    return $form->render(); // display form 
} 
add_shortcode('show_form', 'wpplugin_blah_forms_show'); 

Приведенный выше пример является урезанной версией того, что им делать, им просто не уверен, как получить доступ к $ электронной почте, когда она была инициирована в другой функции.

+1

В вашем wpplugin добавьте 'global $ email;' в качестве первой строки в функции. – Jhecht

ответ

0

для firstclass.php

<?php 

    class Firstclass{ 
     function __construct(){ 

     } 
     function init(){ 

     } 
     function temp1(){ 

     } 

    } 

    if(class_exists('Firstclass')) 
     $firstclass_object = new Firstclass(); 
?> 

В secondclass.php, вы можете получить доступ к функции firstclass.php в

<?php 
    class Firstclass{ 
     function __construct(){ 

     } 
     function temp2(){ 
      global $firstclass_object; 
      $firstclass_object-> temp1;  
     }  
    } 
?> 

Здесь для вашего ответа, вы можете сделать что ниже

//for accessing form id declare it as a global variable 
global $email;  
echo $email->formid; 
Смежные вопросы