我有一個非常基本的問題,我猜與woocommerce和wordpress一起工作的人會知道如何解決這個問題。Woocommerce在添加新產品之前刪除購物車
我有一個客戶在頁面上創建的可定製產品,然後能夠將其添加到購物車。
產品和加入購物車按鈕可以很好地說。
它增加了產品 - 但它在添加新定製產品之前清理購物車。它爲什麼這樣做?我怎樣才能避免它 - 所以它只是在清空當前的購物車之前添加另一個。
我添加到購物車按鈕:
$woocommerce->cart->add_to_cart($product_ID, $quantity=1)
我的產品創新:
function customcart() {
if (isset($_POST["addcustomcarts"])) {
global $woocommerce;
$my_post = array(
'post_title' => 'Design selv skilt',
'post_content' => '<div class="col-md-12">Dette er et design selv skilt, tjek egenskaber på produktet for at se hvad kunden har bestilt.</div>',
'post_status' => 'publish',
'post_author' => 1,
'post_type' => 'product'
);
// Insert the post into the database
$product_ID = wp_insert_post($my_post);
$filteredData=substr($_POST['img_val'], strpos($_POST['img_val'], ",")+1);
//Decode the string
$unencodedData=base64_decode($filteredData);
//Save the image
file_put_contents('img' . $product_ID . '.png', $unencodedData);
if ($product_ID){
wp_set_object_terms($product_ID, 'design-selv-skilte', 'product_cat');
add_post_meta($product_ID, '_regular_price', $_POST["priceInput"]);
add_post_meta($product_ID, '_price', $_POST["priceInput"]);
add_post_meta($product_ID, '_stock_status', 'instock');
//add_post_meta($product_ID, '_manage_stock', 'yes');
//add_post_meta($product_ID, '_stock', '10');
add_post_meta($product_ID, '_sku', 'designselvskilt-' . $product_ID);
add_post_meta($product_ID, '_visibility', 'hidden');
add_post_meta($product_ID, 'tekst-paa-linje-1', $_POST["textInput"]);
add_post_meta($product_ID, 'tekst-paa-linje-2', $_POST["text2Input"]);
add_post_meta($product_ID, 'stoerrelse', $_POST["størrelseInput"]);
add_post_meta($product_ID, 'form', $_POST["formInput"]);
add_post_meta($product_ID, 'farve', $_POST["farveInput"]);
add_post_meta($product_ID, 'type-skilt', $_POST["typeInput"]);
add_post_meta($product_ID, 'fastgoering', $_POST["fastgøringInput"]);
add_post_meta($product_ID, 'font', $_POST["fontInput"]);
add_post_meta($product_ID, 'linje-1-font-size', $_POST["fontSizeLine1Input"]);
add_post_meta($product_ID, 'linje-2-font-size', $_POST["fontSizeLine2Input"]);
add_post_meta($product_ID, 'product_image_gallery', $_POST["img_val"]);
add_post_meta($product_ID, 'product_image_url', 'img' . $product_ID . '.png');
require_once(ABSPATH . 'wp-admin/includes/media.php');
require_once(ABSPATH . 'wp-admin/includes/file.php');
require_once(ABSPATH . 'wp-admin/includes/image.php');
$home = home_url();
$url = $home . '/img' . $product_ID . '.png';
$post_id = $product_ID;
$desc = $_POST["textInput"];
$image = media_sideload_image($url, $post_id, $desc, src);
function getImageId($image) {
// Split the $url into two parts with the wp-content directory as the separator
$parsed_url = explode(parse_url(WP_CONTENT_URL, PHP_URL_PATH), $image);
// Get the host of the current site and the host of the $url, ignoring www
$this_host = str_ireplace('www.', '', parse_url(home_url(), PHP_URL_HOST));
$file_host = str_ireplace('www.', '', parse_url($image, PHP_URL_HOST));
// Return nothing if there aren't any $url parts or if the current host and $url host do not match
if (! isset($parsed_url[1]) || empty($parsed_url[1]) || ($this_host != $file_host)) {
return;
}
// Now we're going to quickly search the DB for any attachment GUID with a partial path match
// Example: /uploads/2013/05/test-image.jpg
global $wpdb;
$attachment = $wpdb->get_col($wpdb->prepare("SELECT ID FROM {$wpdb->prefix}posts WHERE guid RLIKE %s;", $parsed_url[1]));
// Returns null if no attachment is found
return $attachment[0];
}
set_post_thumbnail($post_id, getImageId($image));
$woocommerce->cart->add_to_cart($product_ID, $quantity=1);
wp_redirect('/kurv'); exit;
}
}
}
您是否嘗試過的woocommerce支持論壇還沒有一個過濾器?你更有可能在那裏得到答案。 –
也發佈在那裏。 –