WooCommerce REST API身份验证当我登录同一浏览器中的WordPress时正在失败. 注销 - 一切都起作用 登录 - 获取此错误: {"code":"woocommerce_rest_cannot_view","message":"Sorry, you cannot view this resource.","data":{"status":401}} ajax也是如此: jQuery.ajax({ url:'https://example.com/wp-json/wc/v1/products/30552?consumer_key=ck_xxx&consumer_secret=cs_xxx', success:function(d){window.d = d;} }); 并且在尝试直接在浏览器中访问相同的URL时. 是什么可能导致这种情况? 我想不出任何有用的原因. 解决方案 这已为WooCommer
以下是关于 ajax 的编程技术问答
灵感来自 运送载体自定义字段验证在WooCommerce结帐页面中 答案代码,我使用以下代码显示使用Seption Companies 显示SELECT字段(仅在我选择特定运输方法时显示此字段): add_action( 'woocommerce_after_shipping_rate', 'carrier_custom_fields', 20, 2 ); function carrier_custom_fields( $method, $index ) { if( ! is_checkout()) return; // Only on the checkout page $customer_carrier_method = 'flat_rate:14'; if( $method->id != $customer_carrier_method ) return; // Mostrar solo para "flat_rate:14" $ch
我正在尝试在产品页面中显示WooCommerce通知.该通知应通过AJAX回调函数显示,该函数由按钮触发. 回调工作正常,但没有显示通知. 这是我的代码: jQuery/ajax $(document).ready(function() { $('#return-button').on('click', function (event) { event.preventDefault(); var id = $(this).val(); $.ajax({ url: ajaxurl, type: 'POST', data: { action: 'my_custom_function', product_id: id },
我正在使用WordPress和WooCommerce建立一个食品订购网站.到目前为止,我一直做得很好,但被困在应自动选择运输方法的某个时候. 流程是什么样的?用户访问我的网站并输入邮政编码,然后我的网站显示了在该邮政编码中交付的餐厅.一些餐厅在更少的时间和更少的运费中交付了邮政编码,但有些餐馆需要更多的时间并收取更多的运费. 到目前为止,我所做的是,我从任何餐厅提供的数据库中获取了运输代码.如果用户的邮政编码在列表中不存在,我们会提醒否则,我们将继续前进. 下一步是在更少的交货时间内获取所有在邮政编码中交付的餐厅,然后在更多的交货时间内以邮政编码交付的餐厅.基于较少或更多的交付时间,我分别在A区或B区域中标记用户. 我有针对A和B区域创建的统一费率运输方法,可以从购物车/结帐页面中的下拉菜单中选择.现在是麻烦. 用户不应选择运输率是多少.应根据用户被标记到的区域自动选择和应用. 这种自动更新不是我能够实现的. 我尝试了什么? 正确的过程应该
以下修订的代码基于添加一个结帐复选框字段,该字段可以在WooCommerce中获得百分比费用.我已经适应了,但希望仅针对特定类别,因此当学生在结帐时勾选盒子,定义他们是学生时,它将扣除15%的折扣,但仅针对特定类别范围 - 即"在线研讨会".这超出了我,所以会很感激. // Add a custom checkbox fields after billing fields add_action( 'woocommerce_after_checkout_billing_form', 'add_custom_checkout_checkbox', 20 ); function add_custom_checkout_checkbox(){ // Add a custom checkbox field woocommerce_form_field( 'student_discount_fee', array( 'type' => 'checkbox',
当客户在结帐页面上更改国家/地区时,我正在寻找一种更新订单审核(运费)的方法. 我想使用jQuery.但是 wc_checkout_params wc_checkout_params已弃用. function custom_checkbox_checker() { if (is_checkout()) { wp_enqueue_script('jquery'); ?> jQuery(document).ready(function (e) { var $ = jQuery; // wc_checkout_params is required to continue, ensure the object exists if (typeof wc_ch
基于 显示一个复选框,该复选框在WooCommerce结帐页面中添加费用 答案代码我试图将用法更改为购物车页面,而不是每个客户端请求结帐页面. 到目前为止,我设法在购物车页面上显示自定义费用复选框并触发Ajax. 但是,未更新购物车的总数. 如果有人可以帮助代码或指向正确的方向? // Display the custom checkbox field in cart add_action( 'woocommerce_cart_totals_before_order_total', 'fee_installment_checkbox_field', 20 ); function fee_installment_checkbox_field(){ echo 'Priority Dispatch'; woocommerce_form_field( 'priority_fee'
我想询问如何在结帐页面上禁用Ajax(您输入运输和计费信息),而不是使用Ajax根据您的位置更新购物车摘要,而是通过自然进行更新刷新. 当前,每当用户通过运输位置切换其位置时,购物车摘要将自动更新,而无需重新加载页面.我想删除Ajax,然后将页面重新加载带有更新的信息. 我不太确定我应该指出的是什么样式或方向,但我准备提供任何必要的细节.只是让我知道!谢谢! 解决方案 所有WooCommerce字符串均使用wp_localize_script进行了适当的本地化,因此我认为您可以通过创建适当的.po/.mo文件来正确地翻译它们,但是我承认没有很多翻译经验.供参考:所有可用的语言包都是 github 还想阅读文档. 无论如何,结帐脚本都在checkout.js中.像任何脚本一样,您可以通过 wp_dequeue_script() P> function so_27023433_disable_checkout_script(){ wp_dequeue_sc
我已经组装了该链接,像这样在我的购物车中添加了可变产品,但是我对如何在不重新加载页面的情况下"刷新"购物车而感到不知所措.我的猜测是,我没有正确地将此ajax添加到购物车请求中,因此,woocommerce_add_to_cart_fragments(我相信我的购物车html将用于刷新). > $addToCartLink = '?add-to-cart=' . $prod->id . '&variation_id=' . $var_id . '&attribute_pa_quantity-attribute=' . $var_quantity; jQuery.get($addToCartLink, function() { //refreshCart(); }); 如果有人可以将我指向正确的方向,我将非常感谢.可变/ajax/woocommerce文档似乎很稀疏. 解决方案 @helgatheviking-谢谢,我发现发布后几个小时.这还提供了巨型辅助-va
在我的WooCommerce网站上,我更改了购物车页面,删除了按钮"更新购物车",并创建了2个按钮以添加和删除此图片中显示的产品项目: 当我按下按钮更新购物车时,当我单击数量按钮时,我想调用相同的功能. 为此,我正在使用ajax,但没有做任何事情. 首先在我的function.php文件中,我有一个: function update_my_cart() { // here update then cart var_dump("execute"); } add_action( 'wp_ajax_update_my_cart', 'update_my_cart' ); // If called from admin panel add_action( 'wp_ajax_nopriv_update_my_cart', 'update_my_cart' ); add_action( 'wp_enqueue_scrip
我想更新,然后在更改购物车中的物品数量时通过Ajax重新加载我的购物车. 我已经可以通过Ajax成功地在我的购物车中加载. 要加载我的购物车,我的PHP功能看起来像这样. (在我的functions.php中) function enqueue_cart_show_ajax() { wp_register_script( 'cart-show-ajax-js', get_template_directory_uri() . '/js/cart-show-ajax.js', array( 'jquery' ), '', true ); wp_localize_script( 'cart-show-ajax-js', 'cart_show_ajax', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) ); wp_enqueue_script( 'cart-show-ajax-js' );
我想使用Ajax在WooCommerce购物车中删除产品,而无需单击链接. 如果您遇到了这种功能,请帮助我们. add_action( 'wp_footer', 'add_js_to_wp_wcommerce'); function add_js_to_wp_wcommerce(){ ?> jQuery('.remove-product').click(function(){ var product_id = jQuery(this).attr("data-product_id"); jQuery.ajax({ type: 'POST', dataType: 'json', url: "/wp-admin/admin-ajax.php", data: { action:
我正在尝试提高无限滚动代码的速度.这是我的ajax recret处理脚本 function ga_infinite_scroll() {//trigger this on infinite scroll add_filter( 'woocommerce_get_price_html', 'ga_show_price' );//filter to fix price range if(empty($_POST['search_term'] )){ $params = json_decode( stripslashes( $_POST['query'] ), true ); $params['post_status'] = 'publish'; $params['posts_per_page'] = get_option('posts_per_page'); $params['post_type'] = 'product'; $param
问题: 当调用Ajax时,我正在尝试显示JavaScript警报.但是,当我刷新页面时,警报只会成功发射. 这是函数的开始,如果购物车项目> 2: ,它会触发JavaScript 因此,如果WooCommerce购物车中有2个以上的项目,请运行JavaScript警报... add_action( 'wp_footer', 'trigger_popup' ); function trigger_popup() { global $woocommerce; $maximum_num_products = 2; $cart_num_products = WC()->cart->get_cart_contents_count(); if( $cart_num_products > $maximum_num_products ) { 然后,我试图在称为AJAX时显示JavaScript警报: 我研究了 ?>
在WooCommerce中,当达到特定类别的购物车中的特定产品计数时,我正在尝试显示JavaScript" Sweet Alert".物品通过Ajax添加到购物车中,这就是为什么我想使用JavaScript警报(Sweet Alert). 例如.如果购物车中包含 5个产品 cantory "袋子" - 显示警报. 我已经研究并找到了以下有用的答案,并用它们来构建我的代码.但是,我正在努力将规则应用于特定类别的计数. 在Ajax上显示一个甜蜜的警报数数 计数特定产品类别的购物车项目 目前,下面的代码成功触发,但仅基于购物车中的产品数量.它忽略了产品类别规则: 通过购物车项目循环并设置产品类别计数器: // Wordpress Ajax: Get different cart items count add_action( 'wp_ajax_nopriv_checking_items', 'checking_items' ); add_action( '
下面的代码可用于与WooCommerce一起添加到CART中,以供简单产品,但不适合可变产品.有人可以帮我吗?因为此代码可与最新的WC一起使用,所以请不要删除此问题,因为在线上有很多无效的代码. 我遇到的错误在通知中说我应该选择一个产品选项,即使我选择了一个. JS: jQuery(function($) { $('form.cart').on('submit', function(e) { e.preventDefault(); var form = $(this); form.block({ message: null, overlayCSS: { background: '#fff', opacity: 0.6 } }); var formData = new FormData(form.context); formData.