Example #1
0
/**
 * Increases counters in a database after unlocking content.
 * 
 * @since 1.0.0
 * @return void
 */
function opanda_statistics()
{
    global $wpdb;
    $statsItem = isset($_POST['opandaStats']) ? $_POST['opandaStats'] : array();
    $contextData = isset($_POST['opandaContext']) ? $_POST['opandaContext'] : array();
    // event name
    $eventName = isset($statsItem['eventName']) ? $statsItem['eventName'] : null;
    $eventName = opanda_normilize_value($eventName);
    // sender type
    $eventType = isset($statsItem['eventType']) ? $statsItem['eventType'] : null;
    $eventType = opanda_normilize_value($eventType);
    // context data
    $context = isset($_POST['opandaContext']) ? $_POST['opandaContext'] : array();
    $context = opanda_normilize_values($context);
    $itemId = isset($context['itemId']) ? $context['itemId'] : null;
    $postId = isset($context['postId']) ? $context['postId'] : null;
    if (empty($itemId)) {
        echo json_encode(array('error' => __('Item ID is not specified.', 'bizpanda')));
        exit;
    }
    // counts the stats
    include_once OPANDA_BIZPANDA_DIR . '/admin/includes/stats.php';
    OPanda_Stats::processEvent($itemId, $postId, $eventName, $eventType);
    echo json_encode(array('success' => true));
    exit;
}
/**
 * Normilize the values after receving them via ajax.
 * 
 * @since 1.0.0
 */
function opanda_normilize_values($values = array())
{
    if (empty($values)) {
        return $values;
    }
    if (!is_array($values)) {
        $values = array($values);
    }
    foreach ($values as $index => $value) {
        $values[$index] = is_array($value) ? opanda_normilize_values($value) : opanda_normilize_value($value);
    }
    return $values;
}