Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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
Wordpress 创建自定义插件以向woocommerce产品添加折扣_Wordpress_Woocommerce - Fatal编程技术网

Wordpress 创建自定义插件以向woocommerce产品添加折扣

Wordpress 创建自定义插件以向woocommerce产品添加折扣,wordpress,woocommerce,Wordpress,Woocommerce,我目前有一个WoodPress网站设置,使用woocommerce和gravity表单插件。我正在销售自行车车轮,在我的产品页面上,我使用重力表单来显示不同的定制选项。如果选择一个轮子或两个轮子,则选项不同 我正在努力实现的目标 如果选择了两个轮子,我想增加5%的折扣;如果选择了四个轮子,我想增加10%。此折扣在产品添加到购物车时应用于该产品 我正在尝试创建一个自定义插件,它使用javascript从重力表单输入中获取值,并在将其添加到购物车之前,钩住woocommerce以编辑总价 到目前为止

我目前有一个WoodPress网站设置,使用woocommerce和gravity表单插件。我正在销售自行车车轮,在我的产品页面上,我使用重力表单来显示不同的定制选项。如果选择一个轮子或两个轮子,则选项不同

我正在努力实现的目标

如果选择了两个轮子,我想增加5%的折扣;如果选择了四个轮子,我想增加10%。此折扣在产品添加到购物车时应用于该产品

我正在尝试创建一个自定义插件,它使用javascript从重力表单输入中获取值,并在将其添加到购物车之前,钩住woocommerce以编辑总价

到目前为止我拥有的

custom.js

    jQuery(document).ready(function () {
  jQuery('.cart').submit(function () {
    var noOfWheels = jQuery(".rdoWheel input[type='radio']:checked").val();
    console.log(noOfWheels)
    var data = {
        action: 'my_discount',
        wheels: noOfWheels
    };

    jQuery.ajax({
        type: 'POST',
        url: discountAjax.ajax_url,
        data: data,
        success: function (data) {
            //do nothing

        },
    });

    return false;
});

});
折扣.php

    add_action('wp_enqueue_scripts', 'load_script');
    function load_script() {
      wp_enqueue_script('discount', plugin_dir_url( __FILE__ ) . 'custom/custom.js', array( 'jquery' ) );
      wp_localize_script('discount', 'discountAjax', array('ajaxurl' => admin_url('admin-ajax.php')));
             }


      add_action('wp_ajax_woocommerce_discount', 'calculate', 10);
      add_action('wp_ajax_nopriv_woocommerce_discount', 'calculate', 10);

       function calculate() {
           if (isset($_POST['wheels'])) {
                global $woocommerce;
                $wheels = $_POST['wheels'];
                if ($wheels === "1") {
                          $val = 0;
                 } elseif ($wheels === "2"){
                           $val = 10;
                 }
                 session_start();
                 $_SESSION['val'] = $val;
                }
               }

    add_action('woocommerce_before_calculate_totals', 'add_discount');

        function add_discount( $cart_object) {
          @session_start();
          if (isset($_SESSION['val'])) {
             $wheels = $_SESSION['val'];
                foreach ( $cart_object->cart_contents as $key => $value ) {
                     $c_price = $value['data']->price;
                     $discountAmount = $c_price * $wheels/100; 
                     $value['data']->price = $value['data']->price - $discountAmount;

                   }
             //for testing purpose
             echo $_SESSION['val'];
             echo 'completed';
             unset($_SESSION['val']);
           }
            }
发生了什么事

看来woocommerce功能根本没有启动。当我检查firebug时,我看到我的ajax请求通过了,没有其他问题。如果我删除了除add_折扣函数之外的所有内容,那么它将执行并应用折扣。我似乎无法让它与javascript/ajax一起工作