PHP函数问题 - 设置Cookie值

时间:2017-07-27 19:03:20

标签: php wordpress cookies woocommerce

我有几个月的下面的代码,它运行得非常好,但无中生有,没有理由无法工作。我已经多次检查过代码,但没有找到出错的运气。

请你帮我找出问题所在。

这是Chrome中Cookie窗口的屏幕截图

Screen shot from Cookies Window

问题是以下cookie的值为零。

setcookie("bookinginfo[cart_discount]", $cart_discount, time() + (10 * 365 * 24 * 60 * 60) , "/", ".tourexperts-eg.com", true, true);

setcookie("bookinginfo[cart_price]", $cart_price, time() + (10 * 365 * 24 * 60 * 60) , "/", ".tourexperts-eg.com", true, true);

这个根本没有设置而且缺失了。

setcookie("bookinginfo[tour_price]", $tour_final_price, time() + (10 * 365 * 24 * 60 * 60) , "/", ".tourexperts-eg.com", true, true);

完整的功能代码如下。

function wpcf7_save_data($wpcf7_data)
{

    if ( $wpcf7_data->id !== 5 )
        return;

    $submission = WPCF7_Submission::get_instance();
    if ($submission)
    {
        $posted_data = $submission->get_posted_data();
    }

    $tour_date = $posted_data['tour-date'];
    $adult_no = $posted_data['no-adult'];
    $child_no = $posted_data['no-child'];
    $url = getenv('HTTP_REFERER');
    $title = get_the_title(url_to_postid($url));
    $id = get_page_by_title($title, OBJECT, 'product');
    $tour_id = $id->ID;
    $tour_price = get_post_meta($tour_id, 'tour_price', true);
    $tour_discount_price = get_post_meta($tour_id, 'tour_discount_price', true);
    if(!empty($tour_discount_price))
    {
        $tour_final_price = $tour_discount_price;
    }
    else
    {
        $tour_final_price = $tour_price;
    }

    if ($adult_no >= 15)
    {
        $adults_price = $adult_no * $tour_final_price * 0.4;
    }
    else
    if ($adult_no >= 7)
    {
        $adults_price = $adult_no * $tour_final_price * 0.6;
    }
    else
    if ($adult_no >= 3)
    {
        $adults_price = $adult_no * $tour_final_price * 0.8;
    }
    else
    {
        $adults_price = $adult_no * $tour_final_price;
    }

    $children_price = $child_no * $tour_final_price * 0.5;

    $total_pax = $adult_no + $child_no;

    $cart_price = number_format(($adults_price + $children_price),0,'',',');

    $cart_discount = ($total_pax * $tour_final_price) - $cart_price;

    setcookie("bookinginfo[tour_date]", $tour_date, time() + (10 * 365 * 24 * 60 * 60) , "/", ".tourexperts-eg.com", true, true);
    setcookie("bookinginfo[cart_discount]", $cart_discount, time() + (10 * 365 * 24 * 60 * 60) , "/", ".tourexperts-eg.com", true, true);
    setcookie("bookinginfo[cart_price]", $cart_price, time() + (10 * 365 * 24 * 60 * 60) , "/", ".tourexperts-eg.com", true, true);
    setcookie("bookinginfo[tour_price]", $tour_final_price, time() + (10 * 365 * 24 * 60 * 60) , "/", ".tourexperts-eg.com", true, true);
    setcookie("bookinginfo[tour_id]", $tour_id, time() + (10 * 365 * 24 * 60 * 60) , "/", ".tourexperts-eg.com", true, true);
    setcookie("bookinginfo[adult_no]", $adult_no, time() + (10 * 365 * 24 * 60 * 60) , "/", ".tourexperts-eg.com", true, true);
    setcookie("bookinginfo[child_no]", $child_no, time() + (10 * 365 * 24 * 60 * 60) , "/", ".tourexperts-eg.com", true, true);

    $wpcf7_data->skip_mail = true;

    global $woocommerce;

        WC()->cart->empty_cart( true );
        WC()->cart->add_to_cart($tour_id,$total_pax);
}


add_action( 'woocommerce_cart_calculate_fees', 'prefix_add_discount_line' );

0 个答案:

没有答案