0

I'm having trouble creating a plugin to execute an around interception on a shipping configuration file.

Running on version M2.0.7

Here's the excerpt from my di.xml file showing the class I wish to intercept

<type name="Magento\Shipping\Model\Config\Source\AllMethods">
    <plugin name="allmethodsplugin"
        type="Somevendor\Somemodule\Plugin\Shipping\AllMethodsPlugin"
        sortOrder="1"
        disabled="false"/>
</type>

Below is an excerpt from my AllMethodsPlugin file showing the method I wish to intercept via the "around" mechanism

namespace Somevendor\Somemodule\Plugin\Shipping;

class AllMethodsPlugin
{

...

public function aroundToOptionArray(\Magento\Shipping\Model\Config\Source\AllMethods $subject, \Closure $proceed)
{
    $result = $proceed();
    //do some custom processing here
    return $result
}

It appears this interception is ignored.

I can see from stepping through the code that the configuration is loaded from my di.xml file and I have other working plugins configured in the same file. I can't see any errors in my configuration but welcome to any feedback here.

I don't see any generated class for the AllMethods class, which makes me suspect there is a config error here or it is ignored for interceptors.

I can work around this using argument replacement for the AllMethods variable passed into the calling class. However, I would like to know if this is in fact a limitation in M2?

1 Answer 1

2

It looks like you're trying to intercept the class

Magento\Shipping\Model\Config\Source\AllMethods

However, Magento doesn't have a class by that name. You may be thinking of the class

Magento\Shipping\Model\Config\Source\Allmethods

Notice the lowercase m in methods. Give that a try instead and you should be good to go (or at least moving on the the next problem)

1
  • You're right Alan, was spelling error. Thanks for quick diagnosis
    – wsagen
    Commented Jun 28, 2016 at 2:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.