以下内容适用于我的产品归档页面(例如,这些页面既包括主商店页面,也包括产品类别的归档页面)。
它将在thickbox中显示当前购物车的内容。我之所以选择在这个示例中显示这一点,是因为这是单击“添加到购物车”按钮后通过Ajax返回的数据,但您可能希望在框中显示不同类型的信息。例如,通过查看周围的html元素,可以获得刚刚添加的产品的product\\u id。
在主题的功能中。php(或者在主题的类定义中,如果有)可能有一些“enqueue\\u scripts”函数。您应该将其添加到此函数中,以确保加载thickbox脚本。
if (is_woocommerce() && is_archive()) {
wp_enqueue_script( \'frontend-custom\', get_template_directory_uri() . \'/js/frontend-custom.js\', array("jquery"));
add_thickbox();
}
在一个文件中(在您的主题目录中)js/frontend-custom。js(或任何有主题js的地方):
jQuery(document).ready(function($) {
$(\'body\').on(\'added_to_cart\',function(e,data) {
//alert(\'Added \' + data[\'div.widget_shopping_cart_content\']);
if ($(\'#hidden_cart\').length == 0) { //add cart contents only once
//$(\'.added_to_cart\').after(\'<a href="#TB_inline?width=600&height=550&inlineId=hidden_cart" class="thickbox">View my inline content!</a>\');
$(this).append(\'<a href="#TB_inline?width=300&height=550&inlineId=hidden_cart" id="show_hidden_cart" title="<h2>Cart</h2>" class="thickbox" style="display:none"></a>\');
$(this).append(\'<div id="hidden_cart" style="display:none">\'+data[\'div.widget_shopping_cart_content\']+\'</div>\');
}
$(\'#show_hidden_cart\').click();
});
});
其他注意事项:
我想您也可以从php直接将javascript输出到页面中。在这种情况下,我想你可能想add_action(\'woocommerce_ajax_added_to_cart\', \'myfunction\');
此操作在内部运行woocommerce_ajax_add_to_cart()
在将项目添加到购物车之后(通过验证等),但在重定向之前。
单个产品页面的工作方式不同(“添加到购物车”是一个普通的php表单,不涉及ajax)。
我还没有对此进行测试,但WooCommerce有自己的“Prettypoto”。js”,它通过在href链接中添加“rel=”prettypoto“\'来工作,与上面示例中的thickbox类的工作原理非常相似。您可能想尝试一下保持设计与WooCommerce的一致性。