I am customizing woo-commerce plugin to add product from the front end into the cart. I have written the function in functions.php, but i am getting a Fatal error.
Getting this error–>
Fatal error: Call to a member function add_to_cart() on a non-object
in
C:wampwwwcutting-edge_serverwordpress_themewp-contentthemescutting_ageresponsivefunctions.php
on line 56
Any body have any idea how to resolve it?
My function.php file
if (isset($_POST["addcustomcarts"]))
{
echo $_SERVER[QUERY_STRING];
// echo $_SERVER[REQUEST_URI];
echo "i am in if";
//exit();
add_filter('woocommerce_before_cart', 'customcart');
function customcart() {
echo "i am in function";
//global $woocommerce;
$my_post = array(
'post_title' => 'My post',
'post_content' => 'This is my post.',
'post_status' => 'publish',
'post_author' => 1,
'post_type' =>'product'
);
// Insert the post into the database
$product_ID=wp_insert_post( $my_post );
add_post_meta($product_ID, '_regular_price', 100, $unique);
add_post_meta($product_ID, '_price', 100, $unique);
add_post_meta($product_ID, '_stock_status', 'instock', $unique);
//Getting error on this line.
$woocommerce->cart->add_to_cart( $product_ID, $quantity=1 );
exit( wp_redirect( home_url( "cart" ) ) );
}
customcart();
}
My html file
<form name="addpro" method="post" action="">
<input type="submit" name="addcustomcarts" value="ADD TOO CART" />
</form>
I’m not sure exactly what you are doing, but the following code did work for me in that it created a new product and added it to the cart. Note, I had to use
$_GET
to test on my setup since I don’t have the rest of your code and didn’t feel like creating a form.EDIT: I’ve added a simple
<form>
element and switched to$_POST
.EDIT 2: I’ve removed the form. Apparently the OP has the form on the front page.
The $woocommerce->cart apparently is not an object during the call. Set it to get checked before the line that gives the error:
This will make sure the cart is even there and won’t execute the line if it’s not.