$pi1
및 $pi2
변수 값을 add_custom_price
함수 내부에서 가져 오려고하지만 아무 것도 작동하지 않는 것 같습니다.변수의 값을 다른 변수의 내부에서 얻는 방법
함수 클래스에서 액세스 할 수 있도록 변수를 설정하는 방법을 살펴 봤지만 올바르게 액세스하는 방법을 잘 모르겠습니다.
add_filter('gform_confirmation', array(gravity_pi,custom_confirmation), 10, 4);
class gravity_pi {
public $pi1;
public $pi2;
public function custom_confirmation($confirmation, $form, $entry, $ajax, $product_id, $pi1, $pi2) {
if($form['id'] == '2') {
$post = get_post($entry['post_id']);
$this->pi1 = rgar($entry, '20');
$this->pi2 = rgar($entry, '21');
$exclude_list = array("pi24","pi64","pi65","pi66","pi67","pi68","pi69","pi70","pi71","pi72","pi73","pi74","pi75","pi76","pi77","pi78","pi79","pi80","pi81","pi82");
if(!in_array($this->pi1, $exclude_list) && !empty($this->pi1)){
$target_product_id = '86';
$pid1 = '86';
}else{
$pid1 = preg_replace("/[^0-9,.]/", "", $this->pi1);
}
if(!in_array($pi2, $exclude_list) && !empty($this->pi2)){
$target_product_id = '87';
$pid2 = '87';
}else{
$pid2 = preg_replace("/[^0-9,.]/", "", $this->pi2);
}
$product_ids = ''.$pid1.','.$pid2.'';
$url = 'https://*****.com/cart/?add-to-cart='.$product_ids.'';
$confirmation = array('redirect' => $url);
}
return $confirmation;
}
public function add_custom_price($cart_object, $entry,$form, $field, $input_id) {
foreach ($cart_object->cart_contents as $key => $value) {
if(86 == $value['data']->id) {
$value['data']->set_price( $this->pi1);
}
if(87 == $value['data']->id) {
$value['data']->set_price($this->pi2);
}
}
}
}
add_action('woocommerce_before_calculate_totals', array(gravity_pi,add_custom_price));
add_custom_price() 함수에서 아무 것도 반환하지 않습니다. –