Magento 2.4 alter contact form post values using plugin afterExecute
-
16-04-2021 - |
質問
I am trying to use a plugin to alter the contact form post data by using the afterExecute method:
public function afterExecute(\Magento\Contact\Controller\Index\Post $subject, $result)
{
$comment = $subject->getRequest()->getParam('comment', false);
$subject->getRequest()->setParam('comment', 'testing: '.$comment); // <--- this is not working and not changing the comment post value
return $result;
}
I just want to append/prepend a string to the comment (message) that is posted. But the above does not work and the comment post value is not changed. Thanks
解決
use before plugin instead of after plugin.
public function beforeExecute(\Magento\Contact\Controller\Index\Post $subject)
{
$comment = $subject->getRequest()->getParam('comment', false);
$subject->getRequest()->setParam('comment', 'testing: '.$comment);
}
try this.
他のヒント
Try before plugin with below code
<?php
declare(strict_types=1);
namespace Vendor\MyModule\Plugin\Frontend\Magento\Contact\Controller\Index;
class Post
{
public function beforeExecute(
\Magento\Contact\Controller\Index\Post $subject
) {
$comment = $subject->getRequest()->getParam('comment', false);
$subject->getRequest()->setParam('comment', 'testing: '.$comment);
return;
}
}
所属していません magento.stackexchange