Looking back, when we defined a plugin in the di.xml
file, one of the attributes that we set for every plugin definition was sortOrder
. It was set to 100
, 200
to 300
for foggyPlugin1
, foggyPlugin2
and foggyPlugin3
respectively.
The flow of the code execution for the preceding plugins is as follows:
Plugin1 - beforeGetAddToCartUrl
Plugin1 - aroundGetAddToCartUrl
Plugin2 - beforeGetAddToCartUrl
Plugin2 - aroundGetAddToCartUrl
Plugin3 - beforeGetAddToCartUrl
Plugin3 - aroundGetAddToCartUrl
Plugin3 - afterGetAddToCartUrl
Plugin2 - afterGetAddToCartUrl
Plugin1 - afterGetAddToCartUrl
In other words, if multiple plugins are listening to the same method, the following execution order is used:
before
plugin functions with the lowest sortOrder
valuearound
plugin functions with the lowest sortOrder
valuebefore
plugin functions following the sortOrder
value from the lowest to the highestaround
plugin functions following the sortOrder
value from the lowest to the highestafter
plugin functions with the highest sortOrder
valueafter
plugin functions following the sortOrder
value from the highest to the lowest18.118.145.114