Title: PHP error on Admin function
Last modified: August 30, 2016

---

# PHP error on Admin function

 *  Resolved [dccharron](https://wordpress.org/support/users/dccharron/)
 * (@dccharron)
 * [10 years, 9 months ago](https://wordpress.org/support/topic/php-error-on-admin-function/)
 * Thanks again for this great plugin. Just updated to version 1.3 and noticed a
   few things.
 * First thing, one of my existing popups (Top left and 40% size) was showing up
   in the middle of the page.
 * Second thing, I tried modifying the settings from Top Left to Top Center and,
   on Save, I got some PHP errors:
 * `Warning: file() [function.file]: Filename cannot be empty in /home/content/06/
   7129406/html/wp-content/plugins/popup-maker/includes/misc-functions.php on line
   15`
 * This line got repeated twice then:
 * `Warning: Cannot modify header information - headers already sent by (output 
   started at /home/content/06/7129406/html/wp-content/plugins/popup-maker/includes/
   misc-functions.php:15) in /home/content/06/7129406/html/wp-admin/post.php on 
   line 237`
 * Also twice. (I have exactly 2 popups – coincidence?)
 * This error did not prevent me from returning to admin page and this did not prevent
   me from changing this popup back to Top Left (same 4 error messages appeared 
   on Save) and this restored the way the popup works as it did before.
 * You can see the popup in action (in the booking form) at this link:
    [http://hayagriva.org.au/?p=5872](http://hayagriva.org.au/?p=5872)
   Just look for the “View Booking Terms and Conditions”
 * I’m still using the plugin but it would be great if you could advise what I should
   do to stop the PHP errors.
 * [https://wordpress.org/plugins/popup-maker/](https://wordpress.org/plugins/popup-maker/)

Viewing 14 replies - 1 through 14 (of 14 total)

 *  Plugin Author [Daniel Iser](https://wordpress.org/support/users/danieliser/)
 * (@danieliser)
 * [10 years, 9 months ago](https://wordpress.org/support/topic/php-error-on-admin-function/#post-6410758)
 * [@dccharron](https://wordpress.org/support/users/dccharron/) – Darn, beta tested
   for several weeks and didn’t catch that. Will put out a patch shortly.
 * That error first indicates your on an older version of PHP. I added that function
   for PHP 5.2 compatibility but seems something is awry. Can you post the contents
   of System Info from Popup Maker -> Tools here. I need to figure out why it may
   be occuring.
 * Will look for a quick solution, can you make changes to the PHP files manually
   to see if the fix I find works without pushing an update?
 *  Plugin Author [Daniel Iser](https://wordpress.org/support/users/danieliser/)
 * (@danieliser)
 * [10 years, 9 months ago](https://wordpress.org/support/topic/php-error-on-admin-function/#post-6410761)
 * [@dccharron](https://wordpress.org/support/users/dccharron/) – I think I found
   a better alternate function if you can test it that would be great.
 * In that file misc-functions.php is a function named get_called_class().
 * If you can replace it with this and test again I would be greatful. I need to
   get this part worked out ASAP as v1.4 builds on the features that use this heavily.
 *     ```
       function get_called_class () {
       	foreach ( debug_backtrace() as $trace ) {
       		if ( isset( $trace['object'] ) ) {
       			if ( $trace['object'] instanceof $trace['class'] ) {
       				return get_class( $trace['object'] );
       			}
       		}
       	}
       	return false;
       }
       ```
   
 *  Thread Starter [dccharron](https://wordpress.org/support/users/dccharron/)
 * (@dccharron)
 * [10 years, 9 months ago](https://wordpress.org/support/topic/php-error-on-admin-function/#post-6410775)
 * Made the change to get_called_class () in misc-functions.php as you suggested/
   provided then tried updating one popup. Got a fatal error:
 * `Parse error: syntax error, unexpected '&', expecting ']' in /home/content/06/
   7129406/html/wp-content/plugins/popup-maker/includes/misc-functions.php on line
   21`
 * This disabled my access to admin page completely so reverted to original code
   and all ok now. Of course it now generates the 4 errors I mentioned earlier.
 * I must confess changing PHP in situ is not my strong suit so perhaps I fouled
   things up. Happy to take advice and try it again if that’s useful to you.
 *  Thread Starter [dccharron](https://wordpress.org/support/users/dccharron/)
 * (@dccharron)
 * [10 years, 9 months ago](https://wordpress.org/support/topic/php-error-on-admin-function/#post-6410778)
 * Weird. I just checked that the code that I used was correct. When I compared 
   the code I got from the email to the code in your post, they were different! 
   I had used the one from the email so I decided to copy and paste the code from
   the post and try it again. Failed again but different error this time:
 * `Fatal error: Class name must be a valid object or a string in /home/content/
   06/7129406/html/wp-content/plugins/popup-maker/includes/class-popmake-fields.
   php on line 23`
 * Weird.
 *  Plugin Author [Daniel Iser](https://wordpress.org/support/users/danieliser/)
 * (@danieliser)
 * [10 years, 9 months ago](https://wordpress.org/support/topic/php-error-on-admin-function/#post-6410780)
 * [@dccharron](https://wordpress.org/support/users/dccharron/) – Testing a different
   solution. There are several functions that are available, I need to find the 
   most efficient one that works.
 * Bear with me and I’m gonna post 2 more for you to try now.
 *  Plugin Author [Daniel Iser](https://wordpress.org/support/users/danieliser/)
 * (@danieliser)
 * [10 years, 9 months ago](https://wordpress.org/support/topic/php-error-on-admin-function/#post-6410782)
 * #1
 *     ```
       function get_called_class($level = 1, $trace = false) {
   
       		if (!$trace) $trace = debug_backtrace();
       		if (!isset($trace[$level])) throw new Exception(
       			'Cannot find called class: stack level too deep');
       		if (!isset($trace[$level]['type'])) throw new Exception (
       			'Cannot find called class: type not set');
   
       		switch ($trace[$level]['type']) {
       			case '::':
       				$lines = file($trace[$level]['file']);
       				$i = 0;
       				$callerLine = '';
       				while (stripos($callerLine, $trace[$level]['function']) === false) {
       					$i++;
       					$callerLine = $lines[$trace[$level]['line'] - $i] . $callerLine;
       				}
   
       				$pattern = '/([a-zA-Z0-9\_]+)::' . $trace[$level]['function'] . '/';
       				preg_match($pattern, $callerLine, $matches);
   
       				if (!isset($matches[1])) {
       					throw new Exception(
       						'Cannot find called class: originating method call is obscured');
       				}
   
       				switch ($matches[1]) {
       					case 'self':
       					case 'parent':
       						return get_called_class($level + 1, $trace);
       					default:
       						return $matches[1];
       				}
   
       			case '->':
       				switch ($trace[$level]['function']) {
       					case '__get':
       						if (!is_object($trace[$level]['object'])) {
       							throw new Exception('Edge case fail. __get called on non object');
       						}
       						return get_class($trace[$level]['object']);
       					default: return $trace[$level]['class'];
       				}
   
       			default:
       				throw new Exception ("Unknown backtrace method type");
       		}
   
       	}
       ```
   
 * #2
 *     ```
       function get_called_class()
       	{
       		$bt = debug_backtrace();
       		$lines = file($bt[1]['file']);
       		preg_match('/([a-zA-Z0-9\_]+)::'.$bt[1]['function'].'/',
       			$lines[$bt[1]['line']-1],
       			$matches);
       		return $matches[1];
       	}
       ```
   
 * #3
 *     ```
       function get_called_class() {
       		$bt = debug_backtrace();
       		$l = 0;
       		do {
       			$l++;
       			$lines = file($bt[$l]['file']);
       			$callerLine = $lines[$bt[$l]['line']-1];
       			preg_match('/([a-zA-Z0-9\_]+)::'.$bt[$l]['function'].'/',
       				$callerLine,
       				$matches);
   
       			if ($matches[1] == 'self') {
       				$line = $bt[$l]['line']-1;
       				while ($line > 0 && strpos($lines[$line], 'class') === false) {
       					$line--;
       				}
       				preg_match('/class[\s]+(.+?)[\s]+/si', $lines[$line], $matches);
       			}
       		}
       		while ($matches[1] == 'parent'  && $matches[1]);
       		return $matches[1];
       	}
       ```
   
 *  Plugin Author [Daniel Iser](https://wordpress.org/support/users/danieliser/)
 * (@danieliser)
 * [10 years, 9 months ago](https://wordpress.org/support/topic/php-error-on-admin-function/#post-6410784)
 * Try them in order. Let me know which works for you. Thanks for testing.
 *  Thread Starter [dccharron](https://wordpress.org/support/users/dccharron/)
 * (@dccharron)
 * [10 years, 9 months ago](https://wordpress.org/support/topic/php-error-on-admin-function/#post-6410789)
 * Solution #1 worked perfectly. No errors. Updated perfectly. Tested perfectly.
   Will try the other two solutions now.
 *  Thread Starter [dccharron](https://wordpress.org/support/users/dccharron/)
 * (@dccharron)
 * [10 years, 9 months ago](https://wordpress.org/support/topic/php-error-on-admin-function/#post-6410790)
 * Solution #2 worked perfectly too. No errors. Updated perfectly. Tested perfectly.
   Will try #3 now.
 *  Thread Starter [dccharron](https://wordpress.org/support/users/dccharron/)
 * (@dccharron)
 * [10 years, 9 months ago](https://wordpress.org/support/topic/php-error-on-admin-function/#post-6410792)
 * Solution #3 worked perfectly too. No errors. Updated perfectly. Tested perfectly.
   Back to you now.
 *  Plugin Author [Daniel Iser](https://wordpress.org/support/users/danieliser/)
 * (@danieliser)
 * [10 years, 9 months ago](https://wordpress.org/support/topic/php-error-on-admin-function/#post-6410796)
 * [@dccharron](https://wordpress.org/support/users/dccharron/) – Awesome, thanks
   for the confirmation. Gonna include those in a patch in just a bit. I am working
   out one other issue and then can put out a patch.
 *  Plugin Author [Daniel Iser](https://wordpress.org/support/users/danieliser/)
 * (@danieliser)
 * [10 years, 9 months ago](https://wordpress.org/support/topic/php-error-on-admin-function/#post-6410813)
 * [@dccharron](https://wordpress.org/support/users/dccharron/) – Patch is live.
 * Please take a moment to [rate and review the plugin](https://wordpress.org/support/view/plugin-reviews/popup-maker)
   and or support.
 *  Thread Starter [dccharron](https://wordpress.org/support/users/dccharron/)
 * (@dccharron)
 * [10 years, 9 months ago](https://wordpress.org/support/topic/php-error-on-admin-function/#post-6410816)
 * I’ve updated to 1.3.1 and tested again. All working perfectly. How good is that!
   Thanks again.
 *  Plugin Author [Daniel Iser](https://wordpress.org/support/users/danieliser/)
 * (@danieliser)
 * [10 years, 9 months ago](https://wordpress.org/support/topic/php-error-on-admin-function/#post-6410889)
 * [@dccharron](https://wordpress.org/support/users/dccharron/) – Awesome! Happy
   I could help you out. Btw, when you have a moment, I would very much appreciate
   if you could quickly [rate the plugin](https://wordpress.org/support/view/plugin-reviews/popup-maker#postform),
   just to help us spread the word.

Viewing 14 replies - 1 through 14 (of 14 total)

The topic ‘PHP error on Admin function’ is closed to new replies.

 * ![](https://ps.w.org/popup-maker/assets/icon-256x256.gif?rev=3097653)
 * [Popup Maker - Boost Sales, Conversions, Optins, Subscribers with the Ultimate WP Popup Builder](https://wordpress.org/plugins/popup-maker/)
 * [Frequently Asked Questions](https://wordpress.org/plugins/popup-maker/#faq)
 * [Support Threads](https://wordpress.org/support/plugin/popup-maker/)
 * [Active Topics](https://wordpress.org/support/plugin/popup-maker/active/)
 * [Unresolved Topics](https://wordpress.org/support/plugin/popup-maker/unresolved/)
 * [Reviews](https://wordpress.org/support/plugin/popup-maker/reviews/)

## Tags

 * [errors](https://wordpress.org/support/topic-tag/errors/)
 * [php](https://wordpress.org/support/topic-tag/php/)
 * [popup](https://wordpress.org/support/topic-tag/popup/)

 * 14 replies
 * 2 participants
 * Last reply from: [Daniel Iser](https://wordpress.org/support/users/danieliser/)
 * Last activity: [10 years, 9 months ago](https://wordpress.org/support/topic/php-error-on-admin-function/#post-6410889)
 * Status: resolved