/**
  * load interface for single visitor condition
  *
  * @since 1.5.4
  */
 public function load_visitor_condition()
 {
     if (!current_user_can(Advanced_Ads_Plugin::user_cap('advanced_ads_edit_ads'))) {
         return;
     }
     // get visitor condition types
     $visitor_conditions = Advanced_Ads_Visitor_Conditions::get_instance()->conditions;
     $condition = array();
     $condition['type'] = isset($_POST['type']) ? $_POST['type'] : '';
     $condition['connector'] = isset($_POST['connector']) ? $_POST['connector'] : '';
     $index = isset($_POST['index']) ? $_POST['index'] : 0;
     if (isset($visitor_conditions[$condition['type']])) {
         $metabox = $visitor_conditions[$condition['type']]['metabox'];
     } else {
         die;
     }
     if (method_exists($metabox[0], $metabox[1])) {
         call_user_func(array($metabox[0], $metabox[1]), $condition, $index);
     }
     die;
 }
<?php

$visitor_conditions = Advanced_Ads_Visitor_Conditions::get_instance()->conditions;
$options = $ad->options('visitors');
?>
<p class="description"><?php 
_e('Display conditions that are based on the user. Use with caution on cached websites.', 'advanced-ads');
?>
</p>
<div id="advads-visitor-conditions">
	<table><tbody><?php 
if (isset($options)) {
    $i = 0;
    foreach ($options as $_options) {
        if (isset($visitor_conditions[$_options['type']]['metabox'])) {
            $metabox = $visitor_conditions[$_options['type']]['metabox'];
        } else {
            continue;
        }
        if (method_exists($metabox[0], $metabox[1])) {
            $_connector = isset($_options['connector']) ? esc_attr($_options['connector']) : 'and';
            ?>
<tr><td colspan="4" class="advads-visitor-conditions-connector-<?php 
            echo $_connector;
            ?>
"><?php 
            echo $_connector;
            ?>
<hr/></td></tr><?php 
            ?>
<tr><td></td><td><?php 
 /**
  * controls frontend checks for conditions
  *
  * @param arr $options options of the condition
  * @param ob $ad Advanced_Ads_Ad
  * @return bool false, if ad can’t be delivered
  */
 static function frontend_check($options = array(), $ad = false)
 {
     $visitor_conditions = Advanced_Ads_Visitor_Conditions::get_instance()->conditions;
     if (is_array($options) && isset($visitor_conditions[$options['type']]['check'])) {
         $check = $visitor_conditions[$options['type']]['check'];
     } else {
         return true;
     }
     // call frontend check callback
     if (method_exists($check[0], $check[1])) {
         return call_user_func(array($check[0], $check[1]), $options, $ad);
     }
     return true;
 }