Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 允许客户在WooCommerce中通过某些验证设置产品价格并添加到购物车_Php_Wordpress_Validation_Woocommerce_Product - Fatal编程技术网

Php 允许客户在WooCommerce中通过某些验证设置产品价格并添加到购物车

Php 允许客户在WooCommerce中通过某些验证设置产品价格并添加到购物车,php,wordpress,validation,woocommerce,product,Php,Wordpress,Validation,Woocommerce,Product,我正在开发一款礼品卡产品,我需要客户能够设定价格,只要价格是100或更多。问题是,我不确定如何创建值检查 然后,客户应该能够像往常一样添加到购物车,并像往常一样结帐 如果产品被分配到giftcard类别,我为产品价格添加了一个remove\u操作(由于某些原因,该操作不起作用) 字段输入已经创建,数据应该传递到购物车、结帐和订单中——但由于某些原因,它不起作用 下一步是将产品价格设置为客户提交的任何礼品卡值(只要是100或更多),并将其显示为购物车和结帐上的产品价格 如果有人能帮我复习,那就太棒

我正在开发一款礼品卡产品,我需要客户能够设定价格,只要价格是100或更多。问题是,我不确定如何创建值检查

然后,客户应该能够像往常一样添加到购物车,并像往常一样结帐

如果产品被分配到giftcard类别,我为产品价格添加了一个
remove\u操作
(由于某些原因,该操作不起作用)

字段输入已经创建,数据应该传递到购物车、结帐和订单中——但由于某些原因,它不起作用

下一步是将产品价格设置为客户提交的任何礼品卡值(只要是100或更多),并将其显示为购物车和结帐上的产品价格

如果有人能帮我复习,那就太棒了

add_动作('woocommerce_前加_至购物车表单','giftcard_价格字段');
函数giftcard_price_field(){
全球$产品;
如果(有术语('giftcard'、'product_cat'、$product->get_id()){
//如果产品被分配到礼品卡类别,请删除产品价格
删除行动('woocommerce\u single\u product\u summary'、'woocommerce\u template\u single\u price',10);
//为价格添加一个新的输入字段,允许客户设置价格
回声'
礼品卡价值:
';
}
}
添加过滤器('woocommerce'添加购物车\项目\数据','giftcard\价格\字段\购物车\数据',10,3);
函数giftcard\u price\u field\u cart\u data($cart\u item\u data、$product\u id、$variation\u id){
如果(!空($_POST['giftcard product price'])){
//需要检查该值是否不低于100,如果是,则创建wc_通知警告
$cart\u item\u data['giftcard-product-price']=清理文本字段($\u POST['giftcard-product-price']);
}
返回$cart\u item\u数据;
}
添加过滤器('woocommerce\u get\u item\u data','giftcard\u price\u field\u display\u data',10,2);
函数giftcard\u price\u field\u display\u data($item\u data,$cart\u item){
如果(!空($cart_item['giftcard product price'])){
$item_data[]=数组(
'key'=>'Giftcard value',
'value'=>$cart_item['giftcard-product-price'],
'显示'=>'',
);
}
返回$item_数据;
}
添加操作('woocommerce\u checkout\u create\u order\u line\u item'、'giftcard\u price\u field\u order\u data',10,4);
函数giftcard\u price\u field\u order\u data($item,$cart\u item\u key,$values,$order){
如果(!空($values['giftcard product price'])){
$item->添加元数据('Giftcard value',$values['Giftcard-product-price']);
}
}
  • 在单个产品页面上添加新字段“
    giftcard\u product\u price
    ”,如果
  • 删除单个产品页面上的原始产品价格
  • 已经添加了各种验证,并且这些验证是可能的
  • 产品价格(礼品卡)根据客户输入的价格进行调整
函数giftcard\u price\u field(){
全球$产品;
//瞬间
if($WC_产品的产品实例){
//集合类别
$cats=数组('giftcard');
//真的
if(有_术语($cats,$product_cat',$product->get_id()){
//为价格添加一个新的输入字段,允许客户设置价格
回声'
礼品卡价值:
';
}
}
}
添加操作('woocommerce'在添加到购物车按钮之前,'giftcard'价格字段',10,0);
//除去价格
功能动作\u商业\u单一产品\u总结(){
全球$产品;
//瞬间
if($WC_产品的产品实例){
//集合类别
$cats=数组('giftcard');
//真的
如果(有_术语($cats,$product_cat',$product->get_id()){
删除行动(“woocommerce\u single\u product\u summary”和“woocommerce\u template\u single\u price”,10);
}
}
}
添加行动('woocommerce\u single\u product\u summary','action\u woocommerce\u single\u product\u summary',5);
//证实
函数筛选器添加到购物车验证($passed,$product,$id,$quantity,$variation,$id=null,$variations=null){
//伊塞特
如果(isset($_POST['giftcard\u product\u price'])){
$giftcard_product_price=$_POST['giftcard_product_price'];
//错误=空、非数字或小于100
if(空($giftcard\U product\U price)){
wc_add_通知(uuu('Field is empty','woocommerce'),'error');
$passed=false;
}elseif(!是数字($giftcard\u product\u price)){
wc_add_notice(uuu('nota number或numeric string','woocommerce'),'error');
$passed=false;
}elseif($giftcard_产品_价格<100){
wc_添加_通知(uuu('小于100','woocommerce'),'error');
$passed=false;
}   
}
返回$passed;
}
添加过滤器(“woocommerce\u添加到购物车\u验证”、“filter\u woocommerce\u添加到购物车\u验证”,10,5);
函数过滤器\添加\购物车\项目\数据($cart\项目\数据,$product\ id,$variation\ id){
如果(isset($_POST['giftcard\u product\u price'])){
$cart\u item\u data['giftcard\u product\u price']=sanitize\u text\u字段($\u POST['giftcard\u product\u price']);
}
返回$cart\u item\u数据;
}
添加过滤器('woocommerce\u add\u cart\u item\u data','filter\u add\u cart\u item\u data',10,3);
//定价
计算总计之前的功能操作($cart){
if(定义了('DOING'uajax'))
返回;
如果(did_action('woocommerce_before_calculate_totals')>=2)
返回;
//循环浏览购物车项目
foreach($cart->get\u cart()作为$cart\u项目){
if(isset($cart\u item['giftcard\u product\u price')){
$cart_item['data']->set_price($cart_item['giftcard_product_price']);
}