Exemplo n.º 1
0
/**
 * status widget : register with wordpress
 *
 * @param void
 * @return void
 * @since 1.0
 */
function mgm_sidebar_widget_status_register()
{
    global $wp_registered_widgets, $mgm_sidebar_widget;
    //skip if on transactions page:
    foreach (mgm_get_payment_page_query_vars() as $query_var) {
        // set if
        if ($isset_quey_var = mgm_get_query_var($query_var)) {
            return;
        }
    }
    // payment
    if (isset($_GET['method']) && preg_match('/payment_/', $_GET['method'])) {
        return;
    }
    // $options[$number]['title']
    if (!($options = $mgm_sidebar_widget->status_widget)) {
        $options = array();
    }
    // defaults
    $widget_ops = array();
    $control_ops = array('width' => 400, 'id_base' => 'mgm_sidebar_widget_status');
    // widget name
    $name = __('Magic Members Status', 'mgm');
    $registered = false;
    foreach (array_keys($options) as $o) {
        // Old widgets can have null values for some reason
        if (isset($options[$o]['title'])) {
            $registered = true;
            $id = "mgm_sidebar_widget_status-{$o}";
            // register
            wp_register_sidebar_widget($id, $name, 'mgm_sidebar_widget_status', $widget_ops, array('number' => $o));
            wp_register_widget_control($id, $name, 'mgm_sidebar_widget_status_admin', $control_ops, array('number' => $o));
        }
    }
    // If there are none, we register the widget's existence with a generic template
    if (!$registered) {
        wp_register_sidebar_widget('mgm_sidebar_widget_status-1', $name, 'mgm_sidebar_widget_status', $widget_ops, array('number' => -1));
        wp_register_widget_control('mgm_sidebar_widget_status-1', $name, 'mgm_sidebar_widget_status_admin', $control_ops, array('number' => -1));
    }
}
function mgm_parse_query()
{
    global $wpdb;
    // pre process hook for parse query
    do_action('mgm_parse_query_pre_process');
    //check file uploads:
    if ($file_upload = mgm_request_var('file_upload', '', true)) {
        // option
        switch ($file_upload) {
            case 'image':
                mgm_photo_file_upload();
                break;
        }
        // no process further
        exit;
    }
    // payment process --------------------
    // default
    $process_payments = false;
    // check
    foreach (mgm_get_payment_page_query_vars() as $query_var) {
        // set if
        if ($isset_query_var = mgm_get_query_var($query_var)) {
            // process
            $process_payments = true;
            break;
        }
    }
    // If buddy press registration page is used. issue #1085
    if (!$process_payments) {
        $process_payments = mgm_is_bp_registration();
    }
    // check
    if ($process_payments) {
        // payment html
        mgm_get_transaction_page_html(false);
        // exit
        exit;
    }
    // download flag // wp-ecommerce also uses download as slug, check
    if (!($download_slug = mgm_get_class('system')->get_setting('download_slug'))) {
        $download_slug = 'download';
    }
    // download call
    if ($isset_download_slug = mgm_get_query_var($download_slug)) {
        // get method
        $code = mgm_request_var('code', '', true);
        // check
        mgm_download_file($code);
        // exit
        exit;
    }
}
/**
 * register widget : multiple instance
 * frontend instance
 *
 * @param array $args
 * @param array $widget_args
 * @return void
 * @since 1.0
 */
function mgm_sidebar_widget_registration($args, $widget_args = 1)
{
    global $wpdb, $user_ID, $current_user, $mgm_sidebar_widget;
    extract($args, EXTR_SKIP);
    if (is_numeric($widget_args)) {
        $widget_args = array('number' => $widget_args);
    }
    $widget_args = wp_parse_args($widget_args, array('number' => -1));
    extract($widget_args, EXTR_SKIP);
    // options init
    $options = $mgm_sidebar_widget->register_widget;
    // mgm_pr($options);
    // check
    if (!isset($options[$number])) {
        return;
    }
    //skip widget if BUDDYPRESS is loaded
    if (defined('BP_VERSION')) {
        return;
    }
    //skip registation page:
    if (in_array(trailingslashit(mgm_current_url()), array(trailingslashit(mgm_get_custom_url('register'))), trailingslashit(mgm_get_custom_url('register', true)))) {
        return;
    }
    // skip if on transactions page:
    foreach (mgm_get_payment_page_query_vars() as $query_var) {
        // set if
        if ($isset_query_var = mgm_get_query_var($query_var)) {
            return;
        }
    }
    // check
    if (isset($_GET['method']) && preg_match('/payment_/', $_GET['method'])) {
        return;
    }
    // set
    $title = isset($options[$number]['title']) ? $options[$number]['title'] : __('Magic Members - Register', 'mgm');
    $intro = isset($options[$number]['intro']) ? $options[$number]['intro'] : '';
    $use_custom_fields = isset($options[$number]['use_custom_fields']) ? $options[$number]['use_custom_fields'] : true;
    //Issue #777
    $default_subscription_pack = isset($options[$number]['default_subscription_pack']) ? $options[$number]['default_subscription_pack'] : false;
    // user looged in
    if (!$user_ID) {
        // if hide on custom register page
        $post_id = get_the_ID();
        // post custom register
        if ($post_id > 0) {
            // if match
            if (get_permalink($post_id) == mgm_get_custom_url('register')) {
                return "";
            }
        }
        // start actual widget
        echo $before_widget;
        if ($title) {
            echo $before_title . $title . $after_title;
        }
        // echo $intro;
        echo mgm_sidebar_user_register_form($use_custom_fields, $default_subscription_pack);
        echo $after_widget;
    }
}
/**
 * override default template
 *
 * @param array $column
 * @param init $post_id
 * @return void
 */
function mgm_template_include($template)
{
    // check override
    if (bool_from_yn(mgm_get_setting('override_theme_for_custom_pages'))) {
        // name
        $name = mgm_get_query_var('name');
        // switch
        switch ($name) {
            case 'register':
            case 'profile':
            case 'lost_password':
            case 'login':
                $content = mgm_get_query_post_content();
                // @todo check #BUG_PENDING
                // check
                if (mgm_is_custom_page_published($name, $content)) {
                    // if template exists in theme only
                    if ($c_template = mgm_get_page_template($name, false, true)) {
                        $template = $c_template;
                    }
                }
                break;
        }
    }
    // return
    return $template;
}