是否可以将localstorage
数据存储为meta-data
中的cart-iem-data
甚至woocommerce
?如果可以,我该如何实现?
这是我的localStorage代码(放置在functions.php中)
add_action( 'wp_footer', 'session_products' );
function session_products() {
if ( is_shop() ) {?>
<script>
document.body.addEventListener('click', add_to_cart);
function add_to_cart(e) {
if (e.target.classList.contains('add_to_cart_button')) {
let val = e.target.getAttribute('data-chosen-date');
let product_id = e.target.getAttribute('data-product_id');
localStorage.setItem(product_id, val);
}
}
</script>
<?php
}
if ( is_cart() ) {
?>
<script>
let items = document.querySelectorAll(".item div");
items.forEach(function (item, index) {
if (item.classList.contains('cart-content__product-remove')) {
let id = item.childNodes[1].getAttribute('data-product_id');
if (localStorage.getItem(id)) {
let textnode = document.createElement('span');
textnode.innerHTML = localStorage.getItem(id);
item.nextElementSibling.appendChild(textnode);
item.nextElementSibling.querySelector('.order-date').appendChild(textnode);
}
window.onbeforeunload = function() {
localStorage.setItem(id);
}
window.onload = function() {
localStorage.getItem(id)
}
}
});
</script>
<?php
}
}
我应该使用像woocommerce_add_order_item_meta
或woocommerce_add_cart_item_data
这样的钩子吗?如果是,怎么办?