Вот строка, которая вызывает у вас проблему
$this->getLayout()->createBlock('asurepay/redirect')->toHtml()
Давайте перепишем это, используя несвязанный синтаксис, чтобы прояснить ситуацию немного
$layout = $this->getLayout();
$block = $layout->createBlock('asurepay/redirect');
$html = $block->toHtml();
Когда PHP жалуется на
Fatal error: Call to a member function toHtml() on a non-object in my code
Это говорит о том, что переменная $block
(результаты вызова createBlock
) не является объектом. Это означает, что ваш звонок по createBlock
по какой-то причине не удался.
Мое обоснованное предположение, что вы config.xml
файл настроены неправильно. На основании вашего имени класса блока (Asurepay_Custompay_Block_Standard_Redirect
) и стандартных соглашений в config.xml
ваш псевдоним должен быть
$layout->createBlock('custompay/standard_redirect');
Однако, это предполагает config.xml
установку что-то вроде
<config>
<!-- ... -->
<global>
<blocks>
<custompay>
<class>Asurepay_Custompay_Block</class>
</custompay>
</blocks>
</global>
<!-- ... -->
</config>
Если вы опубликуете содержимое ваших config.xml
, люди смогут диагностировать вашу проблему.