Домой Каталог: Дополнения WP-Recall Users Files Market Взаимодействие UFM с плагином WP Pay Access на WP-Recall 16
2ответ(ов) в теме
Андрей CS
не в сети 10 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16943
1
20:56

//добавляем в форму публикации выбор созданных аккаунтов доступа
add_filter('rcl_public_form_fields','add_wppay_access_field_in_form',10,2);
function add_wppay_access_field_in_form($fields,$form){
    global $wppay_accounts;
    
    if($form->post_type!='products' || !$wppay_accounts) return $fields;
    
    $access = array(0 => 'Базовый доступ');
    foreach($wppay_accounts as $account){
        $access[$account->ID] = $account->acc_name;
    }
    
    $fields[] = array(
        'type' => 'select',
        'value_in_key' => false,
        'notice' => 'укажите уровень доступа к своей публикации',
        'slug' => 'wppay-access',
        'title' => __('Доступы к выбору','wp-recall'),
        'values' => $access
    );

    return $fields;
    
}

//проверяем возможность добавлять товар в корзину
add_filter('rcl_add_to_cart_data','check_product_add_to_cart_data');
function check_product_add_to_cart_data($data){
    global $user_ID;
    
    $User_Access = get_active_access($user_ID);
    
    if($User_Access) return $data;

    $id_account = get_post_meta($data['product_id'],'wppay-access',1);
    if(!$id_account) return $data;
    
    return false;
}

//выводим блоки тарифных планов на приобретение доступа
add_filter('the_content','edit_salebutton_ufm',15);
function edit_salebutton_ufm($content){
    global $post,$User_Access;
    
    if($User_Access) return $content;

    $id_account = get_post_meta($post->ID,'wppay-access',1);
    if(!$id_account) return $content;

        $content .= do_shortcode('');

    return $content;
}

//выводим кнопку ВИП взамен кнопки "В корзину"
add_action('rcl_cart_button_form_bottom','add_custom_vip_button');
function add_custom_vip_button($data){
    
    if(!isset($data->output['vip']) || !$data->output['vip']) return false;
    
    echo '<span class="cart-button">'
            . '<a href="/vip-account/" class="vip-access-button recall-button"><i class="fa fa-diamond" aria-hidden="true"></i>VIP</a>'
        . '</span>';
    
}

//отключаем вывод элементов формы добавления в корзину и ставим метку vip
add_filter('rcl_cart_button_form_args','delete_cart_args',10,2);
function delete_cart_args($args,$prod_id){
    global $User_Access;
    
    if($User_Access) return $args;

    $id_account = get_post_meta($prod_id,'wppay-access',1);
    if(!$id_account) return $args;

    $args['variations'] = false;
    $args['quantity'] = false;
    $args['cart_button'] = false;
    $args['vip'] = true;
    
    return $args;
}

0
Станислав
не в сети 3 месяца
На сайте с 06.02.2017
Участник
Тем 199
Сообщения 797
2
17:38

С фронтэнда не устанавливается VIP при создании и редактировании товара, только через админку? Поспешил написать. Проверил на другом сайте, так оно и есть.

Редакции сообщения
22.02.2018 17:55СтаниславПричина: не указано
22.02.2018 17:55СтаниславПричина: не указано
0
Вы не имеете права на публикацию сообщений в этой теме