Add dummy product to cart when viewing preview
This commit is contained in:
parent
2464a94920
commit
eb3b1dbee6
|
@ -97,6 +97,10 @@ final class WC_Cart_Session {
|
||||||
foreach ( $cart as $key => $values ) {
|
foreach ( $cart as $key => $values ) {
|
||||||
$product = wc_get_product( $values['variation_id'] ? $values['variation_id'] : $values['product_id'] );
|
$product = wc_get_product( $values['variation_id'] ? $values['variation_id'] : $values['product_id'] );
|
||||||
|
|
||||||
|
if ( ! is_customize_preview() && 'customize-preview' === $key ) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if ( ! empty( $product ) && $product->exists() && $values['quantity'] > 0 ) {
|
if ( ! empty( $product ) && $product->exists() && $values['quantity'] > 0 ) {
|
||||||
|
|
||||||
if ( ! $product->is_purchasable() ) {
|
if ( ! $product->is_purchasable() ) {
|
||||||
|
|
|
@ -21,6 +21,7 @@ class WC_Shop_Customizer {
|
||||||
add_action( 'customize_controls_print_styles', array( $this, 'add_styles' ) );
|
add_action( 'customize_controls_print_styles', array( $this, 'add_styles' ) );
|
||||||
add_action( 'customize_controls_print_scripts', array( $this, 'add_scripts' ), 30 );
|
add_action( 'customize_controls_print_scripts', array( $this, 'add_scripts' ), 30 );
|
||||||
add_action( 'wp_enqueue_scripts', array( $this, 'add_frontend_scripts' ) );
|
add_action( 'wp_enqueue_scripts', array( $this, 'add_frontend_scripts' ) );
|
||||||
|
add_action( 'woocommerce_cart_loaded_from_session', array( $this, 'populate_cart' ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -54,6 +55,31 @@ class WC_Shop_Customizer {
|
||||||
wp_add_inline_style( 'customize-preview', $css );
|
wp_add_inline_style( 'customize-preview', $css );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Make sure the cart has something inside when we're customizing.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function populate_cart() {
|
||||||
|
if ( ! is_customize_preview() ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if ( WC()->cart->is_empty() ) {
|
||||||
|
$dummy_product = new WC_Product();
|
||||||
|
$dummy_product->set_name( 'Sample' );
|
||||||
|
$dummy_product->set_price( 0 );
|
||||||
|
$dummy_product->set_status( 'publish' );
|
||||||
|
$cart_contents['customize-preview'] = array(
|
||||||
|
'data' => $dummy_product,
|
||||||
|
'product_id' => 0,
|
||||||
|
'variation_id' => 0,
|
||||||
|
'data_hash' => false,
|
||||||
|
'quantity' => 1,
|
||||||
|
);
|
||||||
|
WC()->cart->set_cart_contents( $cart_contents );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CSS styles to improve our form.
|
* CSS styles to improve our form.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue