2017-02-07 34 views
2

我试图使用会话将产品'advance-payment' and 'post_title'的自定义属性传递到另一个页面。 post_title获得通过,但自定义属性advance-payment没有。在simple.php上打印了advance-payment,但不在custom_form.php上打印。使用会话传递产品的自定义属性woocommerce

simple.php

<?php 
session_start(); 
$_SESSION['post_title_form'] = $product->post->post_title; 
$ca_advance_value = $product->get_attribute('advance-payment'); 
$_SESSION['post_advance_form']=$ca_advance_value; 
//attribute is echoed here 
echo "Test " . $ca_advance_value; 

custom_form.php

<?php 
session_start(); 
/* Template Name: CustomFormPage */ 
//is displayed 
echo "TEST 1: " .$_SESSION['post_title_form']; 
//not displayed 
echo "TEST 2: ".$_SESSION['post_advance_form']; 

回答

0

您可以添加自定义详细下面钩来吸引商务会议:

add_filter('woocommerce_add_cart_item_data', 'add_cart_item_custom_data_vase', 10, 2); 
    function add_cart_item_custom_data_vase($cart_item_meta, $product_id) { 
     global $woocommerce;    
     $cart_item_meta['post_title'] = 'post title'; 
     $cart_item_meta['post_advance_form'] = 'Advance Payment'; 
     return $cart_item_meta; 
    } 

通过下面的代码,你可以得到从您的custom_form.php购物车会话购物车项目:

global $woocommerce; 
    $items = $woocommerce->cart->get_cart(); 
    foreach($items as $item => $values) {   
     $post_title = $values['post_title']; 
     $post_advance_form = $values['post_advance_form']; 
    } 
+0

我有一个自定义按钮旁边添加到购物车按钮上simple.php采取另一种形式。我不需要购物车中的数据。我需要从simple.php的自定义属性,然后将其传递到custom_form.php –

+0

您可以使用ajax或js函数传递变量到该文件。但我认为这是很好的传递数据与购物车会话,所以你可以在任何地方使用它使用的默认商业功能。 –

相关问题