/**
  * Registers the log post type.
  *
  * @since 1.0.0
  */
 public function register_post_type()
 {
     $log_args = array('labels' => array('name' => __('WPForms Logs', 'wpforms'), 'menu_name' => __('Logs', 'wpforms')), 'public' => false, 'exclude_from_search' => true, 'publicly_queryable' => false, 'show_ui' => false, 'query_var' => false, 'rewrite' => false, 'capability_type' => 'post', 'supports' => array('title', 'editor'), 'can_export' => false, 'show_in_menu' => 'wpforms-overview');
     if (wpforms_debug()) {
         $log_args['show_ui'] = true;
     }
     register_post_type('wpforms_log', apply_filters('wpforms_log_cpt', $log_args));
 }
/**
 * Log helper.
 *
 * @since 1.0.0
 * @param string $title
 * @param string $message
 * @param array $args
 */
function wpforms_log($title = '', $message = '', $args = array())
{
    // Require log title
    if (empty($title)) {
        return;
    }
    // Force logging everything when in debug mode
    if (!wpforms_debug()) {
        /**
         * Compare error levels to determine if we should log.
         * Current supported levels:
         * - Errors (error)
         * - Spam (spam)
         * - Entries (entry)
         * - Payments (payment)
         * - Providers (provider)
         * - Conditional Logic (conditional_logic)
         */
        $type = !empty($args['type']) ? (array) $args['type'] : array('error');
        $levels = get_option('wpforms_logging', array());
        $lvls = array_intersect($type, $levels);
        if (empty($lvls)) {
            return;
        }
    }
    // Meta
    if (!empty($args['form_id'])) {
        $meta = array('form' => absint($args['form_id']));
    } elseif (!empty($args['meta'])) {
        $meta = $args['meta'];
    } else {
        $meta = '';
    }
    // Parent
    $parent = !empty($args['parent']) ? $args['parent'] : 0;
    // Make arrays and objects look nice
    if (is_array($message) || is_object($message)) {
        $message = '<pre>' . print_r($message, true) . '</pre>';
    }
    // Create log entry
    wpforms()->logs->add($title, $message, $parent, $parent, $meta);
}