WooCommerce 3 中的条件产品价格购物车问题

2023-12-13

我修改了一个函数来为我的一些会员创建自定义价格,即正常价格为 1 美元,但如果您是铜牌会员,则为 2 美元,银牌会员为 3 美元,依此类推。

价格在商店和单品页面上发生变化。但是,当产品添加到购物车时,价格将恢复为原始金额。我是否应该添加额外的代码,以便在结帐和计费过程中准确更改价格?

// Variations (of a variable product)
add_filter('woocommerce_variation_prices_price', 'custom_variation_price', 99, 3 );
add_filter('woocommerce_variation_prices_regular_price', 'custom_variation_price', 99, 3 );
function custom_variation_price( $price, $variation, $product ) {

global $product;
$id = $product->get_id();

$user_id = get_current_user_id();
$plan_id = 1628;

  if ( wc_memberships_is_user_member( $user_id, $plan_id )  ) {

  $new = $price * 2;  

  return ($new);
  }

}

使用您的代码,您只需更改显示的变化价格范围。因此,您将需要更多的信息:

// Simple, grouped and external products
add_filter('woocommerce_product_get_price', 'custom_price', 90, 2 );
add_filter('woocommerce_product_get_regular_price', 'custom_price', 90, 2 );

// Product variations (of a variable product)
add_filter('woocommerce_product_variation_get_regular_price', 'custom_price', 99, 2 );
add_filter('woocommerce_product_variation_get_price', 'custom_price', 90, 2 );

// Variable product price ramge
add_filter('woocommerce_variation_prices_price', 'custom_variation_price', 90, 3 );
add_filter('woocommerce_variation_prices_regular_price', 'custom_variation_price', 90, 3 );

function custom_price( $price, $product ) {
    // Only logged in users
    if ( ! is_user_logged_in() ) return $price; 

    // HERE the defined plan ID
    $plan_id = 1628;

    if ( wc_memberships_is_user_member( get_current_user_id(), $plan_id )  ) {
        $price *= 2; // set price x 2
    }
    return $price;
}

function custom_variation_price( $price, $variation, $product ) {
    // Only logged in users
    if ( ! is_user_logged_in() ) return $price; 

    // HERE the defined plan ID
    $plan_id = 1628;

    if ( wc_memberships_is_user_member( get_current_user_id(), $plan_id )  ) {
        $price *= 2; // set price x 2
    }
    return $price;
}

代码位于活动子主题(或活动主题)的 function.php 文件中。

已在 woocommerce 3+ 上测试并运行

现在购物车中的自定义价格也会反映出来

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WooCommerce 3 中的条件产品价格购物车问题 的相关文章

随机推荐

  • Google 登录对话框关闭 android studio 后屏幕闪烁

    我面临这个问题 但无法找到解决方案 我使用 firebase 在我的应用程序中实现了 Google Sign In 我面临的问题是 每当 登录 对话框关闭时 屏幕上就会出现一条从上到下的黑色条带 它移动得非常快 但仍然很明显 我想删除横跨屏
  • 在 MFC 程序中挂钩窗口创建

    我想在 MFC 程序中挂钩窗口创建 有什么办法可以做到这一点吗 Use 设置WindowsHookEx安装一个CBTProc 这是一些示例代码 只需致电InstallHook 从程序的开头开始 然后监视HCBT CREATEWND通知代码
  • 无法在 Google Play 中更新我的应用:aapt 错误

    今天 当我尝试上传应用程序更新时 我从 Google Play 控制台收到以下信息 将新 APK 上传到生产环境 上传失败 无法使用 aapt dump badging 分析您的 APK 错误输出 无法运行 aapt dump badgin
  • 在 ArrayList 中搜索特定对象

    我有一堂课叫Person 它有以下内容attributes 它有2个属性 ID and Telephone 1 个人可以拥有多部电话 因此您可能会在下面看到具有多个 ID 的人 public ArrayList
  • 用gson解析Json返回null对象

    我正在通过 gson 解析 Json 字符串 这是 Json 字符串 ID 1 Name Australia Active true ID 3 Name Kiev Active true ID 4 Name South Africa Act
  • 构造一个从字节数组读取的 java.io.File

    我正在使用需要 java io File 作为输入的 API 但我只想向 API 发送一个字节数组 有没有办法创建一个从我的字节数组而不是从磁盘读取的 File 对象 A File不读任何内容 它代表操作系统中的文件 或目录 对象 或虚拟文
  • 让 UiViewController 保持纵向模式 iOS6 VS iOS5

    我正在为 iOS5 和 iOS6 构建一个应用程序 我在 UINavigationController 中有这个 UIViewController 我希望它保持纵向模式 该代码适用于 iOS5 但不适用于 iOS6 iOS5 rotatio
  • 关闭 XCode CoreData 模型的 codegen

    我自己在 XCode 中使用已声明的类制作 CoreData 模型 编译器代码为我生成了重复项 如何摆脱它 在数据模型编辑器中 将右侧数据模型检查器中的 Codegen 选项更改为 手动 无 遗憾的是 据我所知 您必须分别为每个实体执行此操
  • 将数组值添加到 MongoDB 中,其中元素不在数组中

    在 MongoDB 中 这是我的简化结构account文档 id ObjectId 5a70a60ca7fbc476caea5e59 templates name Password Reset content AAAAAAAA name W
  • 在python中将ndjson转换为json

    我需要在 python 中将 ndjson 对象转换为 json 我看到 pypi org 中有一个库 但我无法使用它 这是 ndjson 0 3 1 license mit count 1551711 license apache 2 0
  • 捕获 C# 表单上的关闭事件

    嘿 我并不是想在这里碰碰运气 但我还有另一个 c 问题 我已经尝试了使用谷歌找到的所有可能的事件 这是代码 private void Form1 OnClose MessageBox Show I was closed 2 private
  • 使用 Action-Cable 的 Ruby-on-Rails 应用程序在开发中运行,但在生产模式中失败

    当从 GPS 接收器收到消息时 我的 RoR 应用程序使用 Action Cable 更新页面 这在开发模式下工作得很好 但在生产模式下浏览器不会收到页面更新 顺便说一句 这是在 Docker 容器中运行的 浏览器出现 404 错误 Err
  • vCard .vcf 文件下载浏览器支持 - godaddy [关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我在网站上有一个下载 vCard vcf 链接 它可以在本地运行 但不能在线运行 只需在浏览器中打开文件而无需下载 我宁愿不用压缩它 仔细阅读后发现我需要这样写 AddType tex
  • 如何增加 ASP.NET 中的最大上传文件大小?

    我有一个接受 ASP NET 中文件上传的表单 我需要将最大上传大小增加到默认值 4 MB 以上 我发现在某些地方引用了以下代码msdn ConfigurationPropertyAttribute maxRequestLength Def
  • Powershell - 仅打印引号之间的文本?

    如何让以下文本的输出仅显示引号中的文本 不带引号 示例文本 this is an apple it is red this is an orange it is orange this is an blood orange it is re
  • 如何使用 LINQ 在集合中选择集合?

    我有以下结构 public class ToolSettings public string Extension get set public ObservableCollection
  • 如何检测 Latin1 编码列中的 UTF-8 字符 - MySQL

    我即将承担将数据库从 Latin1 转换为 UTF 8 的繁琐且充满陷阱的任务 此时 我只想检查表中存储的数据类型 因为这将确定我应该使用什么方法来转换数据 具体来说 我想检查 Latin1 列中是否有 UTF 8 字符 最好的方法是什么
  • this._callback.apply 不是一个函数! Node.js Mysql错误

    控制器代码 app post savedata function req res var cope req body console log On server side console log cope Client ID var que
  • 在java中以300dpi打印到硬打印机

    好吧 我刚刚开始编写一个应该打印出图形的程序 我的几乎与位于此处的 Oracle 受版权保护的一模一样http docs oracle com javase tutorial 2d printing examples HelloWorldP
  • WooCommerce 3 中的条件产品价格购物车问题

    我修改了一个函数来为我的一些会员创建自定义价格 即正常价格为 1 美元 但如果您是铜牌会员 则为 2 美元 银牌会员为 3 美元 依此类推 价格在商店和单品页面上发生变化 但是 当产品添加到购物车时 价格将恢复为原始金额 我是否应该添加额外