Quantcast
Channel: WordPress.org Forums » All Topics
Viewing all articles
Browse latest Browse all 59525

Warning: Header Already Sent

$
0
0

Replies: 0

When disabling the ajax option in your plugin, upon adding a product to the cart that has the popup enabled, I get a PHP warning display that the header has been already sent.

Reason is that the popup code gets injected into the <head> of the HTML document. This happens since the woocommerce_add_to_cart you are hooking into already fires before any content gets displayed.

By making the following modification to the top of your wup-noajax.php file, the popup gets added to the page right after the <body> opening tag. Feel free to modify to your needs:

function thp_upsell_popup_trigger($cart_item_key, $product_id) {
	global $thp_addtocart_popup_btn;

	if ((! is_ajax()) && ($thp_addtocart_popup_btn != true)) {
		global $thp_global_popup_html;
		ob_start();
			thp_fire_php_include( $product_id );
		$thp_popup_html = ob_get_clean();
	}
}
add_action( 'woocommerce_add_to_cart', 'thp_upsell_popup_trigger', 10, 2 );

function thp_insert_popup() {
	global $thp_popup_html;
	echo $thp_popup_html ?? '';
}

add_action('wp_body_open', 'thp_insert_popup');

Can you consider adding the fix or similar?

Thank you!


Viewing all articles
Browse latest Browse all 59525

Trending Articles