Solución:
Si necesita parámetros de entrada y también necesita cambiar la salida, puede usar un alrededor complemento o un después enchufar:
Ejemplo usando around
:
public function aroundGetCategoryUrl(
MagentoCatalogHelperCategory $subject,
Closure $proceed,
$category
) {
$originalResult = $proceed($category);
if (...) {
...
return $otherResult;
}
return $originalResult;
}
Ejemplo usando after
:
public function afterGetCategoryUrl(
MagentoCatalogHelperCategory $subject,
$result,
$category
) {
if (...) {
...
return $otherResult;
}
return $result;
}
Solo una nota:
Tenga en cuenta que si va a cambiar un comportamiento interno, preferencia podría ser una mejor opción que un enchufar. Depende de lo que vayas a hacer.
Desde Magento 2.2 es posible tener parámetros de entrada en el complemento posterior
namespace MyModulePlugin;
class AuthLogger
{
private $logger;
public function __construct(PsrLogLoggerInterface $logger)
{
$this->logger = $logger;
}
/**
* @param MagentoBackendModelAuth $authModel
* @param null $result
* @param string $username
* @return void
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public function afterLogin(MagentoBackendModelAuth $authModel, $result, $username)
{
$this->logger->debug('User ' . $username . ' signed in.');
}
}
Consulte la documentación de Magento para obtener más detalles https://devdocs.magento.com/guides/v2.2/extension-dev-guide/plugins.html#after-methods
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)