Quote Originally Posted by gjh42 View Post
The documentation and discussion I read on empty() tended to agree that this was a good and concise way to do the job, as it wouldn't throw an error in any case, and if it is either empty or not set the code using it should be bypassed.

The wiki example comment about setting observer instantiation to after its caller class was instantiated led me to think that this was necessary for the notifier to function.
"Note: 90 has been chosen as the offset since the observer needs to attach to the $SESSION['cart'] class, which is instantiated at offset 80."
Thinking about it, it would seem that once the order class was instantiated, the observer would need to be instantiated before the order processing reached a relevant notifier point. Would there be a problem with instantiating the observer before the order is instantiated? It sounds like you are saying this would be okay, in which case, using a breakpoint like 160 would have the observer ready to act when order starts processing.

The discussion about saving the tag info between page loads is concerning, though one of the debug lines I put in should add a snippet to the attributes content any time the update is run. This content persists until the order confirmation e-mail is sent. I could see if there is an issue with maintaining the custom content inside the update until adding it later in the process.
Right, so !empty on a variable that is declared as an array() will allow processing to the next "area", but performing foreach on a non-array will cause an error... The intent of the "check" is to ensure that what is to follow can be properly processed where the important part of that internal function is that there are or are not values to be processed AND that the data type is the right style.

To try to help further, seeing as the other questions asked have been missed...

Please list the filenames including extension inside the includes/auto_loaders directory.

Please provide the entirety of code in the function create_add_products that is within the includes/classes/order.php file. Then I recommend a search for 'function create_add_products' from the developers toolkit. Then also a search for each of the notifiers that are reportedly being observed. Right now there is insufficient information to be able to diagnose why the code that has appeared to be properly written is not being accessed as expected.