When executing communityStore.addToCart check for a defined function #905
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
onBeforeAddToCart and execute that first, returning without adding if the function returns boolean false. The function may modify the passed form argument, pushing values into a hidden form order attribute etc.
The reason I did this is that I needed to use the cart for an event booking system, where the user can choose from a list of available dates, or all dates with a correspondingly variable price. I also have to check that there are no more than 100 users registered for a particular day, and that gets tricky when they could be picking one day or all days, so some rather
tortuous back end logic needs to happen first)
I couldn't get the additional event listeners to play nicely, so I figured the tidiest solution here was to make addToCart check for the existence of a custom function (defined in the view) and execute that first, bailing out if it returns false.