Plugin Directory

Changeset 2765251


Ignore:
Timestamp:
08/02/2022 03:03:53 PM (4 years ago)
Author:
learningtimes
Message:

3.7.1

  • Fix: SQL tainted queries.
  • Fix: Sanitize parameters in shortcodes/widgets/blocks.
  • Fix: Steps saving issue with achievements/points/ranks.
  • Fix: Achievement/Ranks/Points image resizing issues from default settings.
  • Fix: Remove limit for downloading assets from assets menu.
Location:
badgeos/trunk
Files:
59 edited

Legend:

Unmodified
Added
Removed
  • badgeos/trunk/badgeos.php

    r2687784 r2765251  
    55* Description: BadgeOS lets your site’s users complete tasks and earn badges, ranks, and points that recognize their achievement. Define achievements and choose from a range of options that determine when they're complete. Badges are Mozilla Open Badges (OBI) compatible so the users can easily validate the earned badges.
    66* Author: LearningTimes
    7 * Version: 3.7.0
     7* Version: 3.7.1
    88* Author URI: https://credly.com/
    99* License: GNU AGPL
     
    3333     * @var string
    3434     */
    35     public static $version = '3.7.0';
     35    public static $version = '3.7.1';
    3636
    3737    /**
     
    438438        $badgeos_tools_email_tab = '';
    439439        if( isset( $_REQUEST['badgeos_tools_email_tab'] ) && !empty( $_REQUEST['badgeos_tools_email_tab'] ) ) {
    440             $badgeos_tools_email_tab = $_REQUEST['badgeos_tools_email_tab'];
     440            $badgeos_tools_email_tab = sanitize_text_field( $_REQUEST['badgeos_tools_email_tab'] );
    441441        }
    442442
     
    710710       
    711711        $data = array(
    712             'ajax_url'        => esc_url( admin_url( 'admin-ajax.php', 'relative' ) )           
     712            'ajax_url'        => esc_url( admin_url( 'admin-ajax.php', 'relative' ) ),         
     713            'security'        => wp_create_nonce( 'bos-security' ),         
    713714        );
    714715        wp_localize_script( 'badgeos-achievements', 'BadgeosData', $data );
  • badgeos/trunk/css/admin.min.css

    r2687784 r2765251  
    1 #icon-badgeos_badgeos{background-image:url(../images/badgeos_screen_icon.png)}li.step-row{background:#fff;border-radius:5px;border:1px solid #ddd;padding:5px 10px}.badgeos-user-earned-achievements-admin-block,.badgeos-user-earned-ranks-admin-block{color:#444;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:13px;line-height:1.4em}li.step-row .step-handle{display:block;background:url(../images/ui_handle.png);width:7px;height:4em;margin:5px 10px 5px 0;position:relative;float:left}li.step-row .required-duration{text-align:right}li.step-row .step-title{display:block;padding-top:5px}li.step-row .title{width:300px}li.step-row .delete-step{position:relative;float:right;line-height:4.5em}.badgeos-table th{font-weight:700;padding:8px 10px;text-transform:uppercase}.badgeos-table a.error{color:#a00}.badgeos-license-status{background:#eee;color:#333;padding:3px 8px;border:1px solid #ddd;border-radius:3px}.badgeos-license-status.failed,.badgeos-license-status.invalid{background:#faa;border-color:#a55;color:#a00}.badgeos-license-status.active,.badgeos-license-status.valid{background:#ac7;border-color:#7a5;color:#250}.badgeos-addons .addon{display:block;background:#fafafa;border:1px solid #eee;padding:1em;margin:0 1em 1em 0;min-width:200px;max-width:25%;position:relative;float:left}.badgeos-addons .addon:nth-child(3n+4){clear:both}.badgeos-addons .addon .thumbnail-link{display:block;margin:0 auto;width:200px;height:200px;text-align:center}.badgeos-addons .addon img{max-width:100%}.wp-core-ui a.badgeos_media_link,.wp-core-ui a.badgeos_media_link:hover{background:url(../images/badgeos_icon.png) 4% 50% no-repeat;padding-left:1.8em}.badgeos_input{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;padding:5px;width:50%}.badgeos_input>div{margin:5px 0}#shortcode_options{margin-top:10px;min-height:100%;overflow:auto;padding-top:10px;width:100%}#shortcode_options label{font-weight:700}#shortcode_options span{font-style:italic}.odd{clear:both}.clear{clear:both}#select2-drop{z-index:100051}#delete_log_entries{margin:2px 8px 0 0}.delete-log-entries.notice img{vertical-align:middle}#revoke-badges-loader{width:25px;margin-left:20px;display:none}.form-table td.bulk-delete-detail{padding-left:20px}.profile-php .earned-user-credits-wrapper,.user-edit-php .earned-user-credits-wrapper{width:100%;overflow:hidden;margin-bottom:30px;margin-top:30px}.profile-php .earned-user-credits-wrapper .badgeos-credits,.user-edit-php .earned-user-credits-wrapper .badgeos-credits{border:1px solid #e8e8e8;position:relative}.profile-php .earned-user-credits-wrapper .badgeos-credits .badgeos-credit-edit,.user-edit-php .earned-user-credits-wrapper .badgeos-credits .badgeos-credit-edit{position:absolute;right:15px;top:15px;cursor:pointer;color:#0073aa}.profile-php .earned-user-credits-wrapper .badgeos-credits .badgeos-edit-credit-wrapper,.user-edit-php .earned-user-credits-wrapper .badgeos-credits .badgeos-edit-credit-wrapper{padding:9px 0}.profile-php .earned-user-credits-wrapper .badgeos-credits .badgeos-earned-credit,.user-edit-php .earned-user-credits-wrapper .badgeos-credits .badgeos-earned-credit{padding:15px 0}.profile-php .earned-user-credits-wrapper .badgeos-credits h3,.user-edit-php .earned-user-credits-wrapper .badgeos-credits h3{margin:0}.profile-php .earned-user-credits-wrapper .badgeos-credits:nth-child(odd),.user-edit-php .earned-user-credits-wrapper .badgeos-credits:nth-child(odd){width:40%;margin:20px 2%;float:left;padding:1%;box-shadow:1px 1px 3px 2px #ccc;background-color:#fff}.profile-php .earned-user-credits-wrapper .badgeos-credits:nth-child(even),.user-edit-php .earned-user-credits-wrapper .badgeos-credits:nth-child(even){width:40%;margin:20px 2%;float:right;padding:1%;box-shadow:1px 1px 3px 2px #ccc;background-color:#fff}.profile-php .badgeos-rank-table .revoke-rank,.user-edit-php .badgeos-rank-table .revoke-rank{cursor:pointer;color:#a00}.profile-php .badgeos-rank-table .award-rank,.user-edit-php .badgeos-rank-table .award-rank{cursor:pointer;color:#0073aa}.profile-php .badgeos-achievement-table,.profile-php .badgeos-rank-table,.user-edit-php .badgeos-achievement-table,.user-edit-php .badgeos-rank-table{border-top:1px solid #e8e8e8;border-bottom:1px solid #e8e8e8;box-shadow:0 0 1px 2px #e8e8e8;margin-bottom:30px}.profile-php .badgeos-achievement-table thead,.profile-php .badgeos-rank-table thead,.user-edit-php .badgeos-achievement-table thead,.user-edit-php .badgeos-rank-table thead{border-bottom:1px solid #e8e8e8;padding:10px}.profile-php .badgeos-achievement-table tfoot,.profile-php .badgeos-rank-table tfoot,.user-edit-php .badgeos-achievement-table tfoot,.user-edit-php .badgeos-rank-table tfoot{border-top:1px solid #e8e8e8;padding:10px}.profile-php .badgeos-achievement-table th,.profile-php .badgeos-rank-table th,.user-edit-php .badgeos-achievement-table th,.user-edit-php .badgeos-rank-table th{padding:10px;background-color:#f6f6f6}.profile-php .badgeos-achievement-table td,.profile-php .badgeos-rank-table td,.user-edit-php .badgeos-achievement-table td,.user-edit-php .badgeos-rank-table td{padding:10px}.profile-php .badgeos-achievement-table tbody tr:nth-child(odd),.profile-php .badgeos-rank-table tbody tr:nth-child(odd),.user-edit-php .badgeos-achievement-table tbody tr:nth-child(odd),.user-edit-php .badgeos-rank-table tbody tr:nth-child(odd){background-color:#fff}.profile-php .badgeos-achievement-table .revoke-achievement,.profile-php .badgeos-rank-table .revoke-rank,.user-edit-php .badgeos-achievement-table .revoke-achievement,.user-edit-php .badgeos-rank-table .revoke-rank{cursor:pointer;color:#a00}.profile-php .badgeos-achievement-table .award-achievement,.profile-php .badgeos-rank-table .award-rank,.user-edit-php .badgeos-achievement-table .award-achievement,.user-edit-php .badgeos-rank-table .award-rank{cursor:pointer;color:#0073aa}.profile_ranks_last_award_field{font-size:20px!important;font-weight:bolder}.badgeos-migration-form-table td{margin-left:3px;padding:7px}.badgeos-migration-form-table h3{margin:0;padding:0}.ui-tabs-vertical{width:100%}.ui-tabs-vertical .ui-tabs-nav{float:left;width:25%}.ui-tabs-vertical .ui-tabs-nav li{clear:left;width:100%;border-bottom-width:1px!important;border-right-width:0!important;margin:0 -1px .2em 0;display:block}.ui-tabs-vertical .ui-tabs-nav li a{display:block;width:100%;padding:8px 0!important}.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active{padding-bottom:0;padding-right:.1em;border-right-width:1px}.ui-tabs-vertical .ui-tabs-panel{padding:1em;float:right;width:calc(75% - 2px)}#badgeos-setting-tabs .ui-tabs-panel{padding:1em;float:right;width:calc(72% - 3px)}#badgeos-setting-tabs td,th{font-size:14px;text-align:left;vertical-align:top}#achievement-tabs,#badgeos-setting-tabs,#credit-tabs,#email-tabs,#rank-tabs,#system-tabs{margin-top:20px;background-color:#f6f6f6;border-color:#ccc;box-shadow:0 0 1px 2px #e8e8e8;padding:0}#achievement-tabs .tab-title,#badgeos-setting-tabs .tab-title,#credit-tabs .tab-title,#email-tabs .tab-title,#rank-tabs .tab-title,#system-tabs .tab-title{padding:10px;font-size:15px;font-weight:700;border-bottom:1px solid #ccc;background-color:#f6f6f6}#achievement-tabs.ui-tabs-vertical .ui-tabs-nav,#badgeos-setting-tabs.ui-tabs-vertical .ui-tabs-nav,#credit-tabs.ui-tabs-vertical .ui-tabs-nav,#email-tabs.ui-tabs-vertical .ui-tabs-nav,#rank-tabs.ui-tabs-vertical .ui-tabs-nav,#system-tabs.ui-tabs-vertical .ui-tabs-nav{padding:0!important;margin:0!important;border:none!important;-webkit-border-radius:0!important;-moz-border-radius:0!important;border-radius:0!important}#achievement-tabs.ui-tabs-vertical .ui-tabs-nav li a,#badgeos-setting-tabs.ui-tabs-vertical .ui-tabs-nav li a,#credit-tabs.ui-tabs-vertical .ui-tabs-nav li a,#email-tabs.ui-tabs-vertical .ui-tabs-nav li a,#rank-tabs.ui-tabs-vertical .ui-tabs-nav li a,#system-tabs.ui-tabs-vertical .ui-tabs-nav li a{padding:8px 2%!important;width:96%!important}#achievement-tabs.ui-tabs-vertical .ui-tabs-nav li,#badgeos-setting-tabs.ui-tabs-vertical .ui-tabs-nav li,#credit-tabs.ui-tabs-vertical .ui-tabs-nav li,#email-tabs.ui-tabs-vertical .ui-tabs-nav li,#rank-tabs.ui-tabs-vertical .ui-tabs-nav li,#system-tabs.ui-tabs-vertical .ui-tabs-nav li{background-color:#f6f6f6;border:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border-bottom:1px solid #ccc;padding:0;margin-bottom:0}#achievement-tabs.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active,#badgeos-setting-tabs.ui-tabs-nav li.ui-tabs-active,#credit-tabs.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active,#email-tabs.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active,#rank-tabs.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active,#system-tabs.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active{background-color:#fff;border:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border-bottom:1px solid #ccc;padding:0}#achievement-tabs.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active a,#badgeos-setting-tabs.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active a,#credit-tabs.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active a,#email-tabs.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active a,#rank-tabs.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active a,#system-tabs.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active a{color:#000}#achievement-tabs.ui-tabs-vertical .ui-tabs-nav li:focus,#badgeos-setting-tabs.ui-tabs-vertical .ui-tabs-nav li:focus,#credit-tabs.ui-tabs-vertical .ui-tabs-nav li:focus,#email-tabs.ui-tabs-vertical .ui-tabs-nav li:focus,#rank-tabs.ui-tabs-vertical .ui-tabs-nav li:focus,#system-tabs.ui-tabs-vertical .ui-tabs-nav li:focus{border:none!important;outline:0!important;box-shadow:none!important}#achievement-tabs.ui-tabs-vertical .ui-tabs-nav li a:focus,#badgeos-setting-tabs.ui-tabs-vertical .ui-tabs-nav li a:focus,#credit-tabs.ui-tabs-vertical .ui-tabs-nav li a:focus,#email-tabs.ui-tabs-vertical .ui-tabs-nav li a:focus,#rank-tabs.ui-tabs-vertical .ui-tabs-nav li a:focus,#system-tabs.ui-tabs-vertical .ui-tabs-nav li a:focus{border:none!important;outline:0!important;box-shadow:none!important}#achievement_bulk_award,#achievement_bulk_revoke,#badgeos_info,#badgeos_tools_email_achievement_steps,#badgeos_tools_email_achievements,#badgeos_tools_email_general,#badgeos_tools_email_point_awards,#badgeos_tools_email_point_deducts,#badgeos_tools_email_rank_steps,#badgeos_tools_email_ranks,#credit_bulk_award,#credit_bulk_revoke,#php_config,#rank_bulk_award,#rank_bulk_revoke,#server_info,#wordpress_info{background-color:#fff;padding:0!important;border-left:1px solid #ccc}#achievement_bulk_award form,#achievement_bulk_revoke form,#badgeos_tools_email_achievement_steps,#badgeos_tools_email_achievements,#badgeos_tools_email_general,#badgeos_tools_email_point_awards,#badgeos_tools_email_point_deducts,#badgeos_tools_email_rank_steps,#badgeos_tools_email_ranks,#credit_bulk_award form,#credit_bulk_revoke form,#rank_bulk_award form,#rank_bulk_revoke form{padding:20px}#badgeos_info table,#php_config table,#server_info table,#wordpress_info table{padding:20px;width:100%;text-align:left}#badgeos_info table tr:nth-child(even),#php_config table tr:nth-child(even),#server_info table tr:nth-child(even),#wordpress_info table tr:nth-child(even){text-align:left;background:#fff}#badgeos_info table tr:nth-child(odd),#php_config table tr:nth-child(odd),#server_info table tr:nth-child(odd),#wordpress_info table tr:nth-child(odd){text-align:left;background:#f6f6f6}#badgeos_info table tr th,#php_config table tr th,#server_info table tr th,#wordpress_info table tr th{width:35%}#badgeos_info table tr td,#badgeos_info table tr th,#php_config table tr td,#php_config table tr th,#server_info table tr td,#server_info table tr th,#wordpress_info table tr td,#wordpress_info table tr th{padding:10px}#achievement_bulk_award form table,#achievement_bulk_revoke form table,#credit_bulk_award form table,#credit_bulk_revoke form table,#rank_bulk_award form table,#rank_bulk_revoke form table{width:100%}.badgeos-wp_page_badgeos_tools form table tr th{width:35%!important}.badgeos-wp_page_badgeos_tools form table tr td{width:65%!important}.badgeos-wp_page_badgeos_tools form table tr td span input,.badgeos-wp_page_badgeos_tools form table tr td span>span.selection{width:100%!important}.badgeos-wp_page_badgeos_tools form table tr td>input,.badgeos-wp_page_badgeos_tools form table tr td>select{width:80%;padding:20px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;height:45px!important}.badgeos-wp_page_badgeos_tools form table tr td,.badgeos-wp_page_badgeos_tools form table tr th{border-bottom:1pt solid #e5e5e5;padding:20px 0}#achievement-tabs .button,#badgeos-setting-tabs .button,#credit-tabs .button,#email-tabs .button,#rank-tabs .button{margin:20px 0;float:right}#achievement-tabs .tool-hint,#badgeos-setting-tabs .tool-hint,#credit-tabs .tool-hint,#email-tabs .tool-hint,#rank-tabs .tool-hint{display:block;color:#aaa;margin:5px 0}.badgeos-wp_page_badgeos_tools .select2-container .select2-search--inline .select2-search__field{margin-top:12px}#credit_types_to_award,#credit_types_to_revoke{padding:12px;line-height:normal;height:auto}#achievement_bulk_award form table tr td,#achievement_bulk_revoke form table tr th,#badgeos_tools_email_achievement_steps form table tr th,#badgeos_tools_email_achievements form table tr th,#badgeos_tools_email_general form table tr th,#badgeos_tools_email_point_awards form table tr th,#badgeos_tools_email_point_deducts form table tr th,#badgeos_tools_email_rank_steps form table tr th,#badgeos_tools_email_ranks form table tr th,#credit_bulk_award form table tr td,#credit_bulk_award form table tr th,#credit_bulk_revoke form table tr td,#credit_bulk_revoke form table tr th,#rank_bulk_award form table tr th,#rank_bulk_revoke form table tr td{padding-bottom:20px}#achievement_bulk_award form table tr th,#achievement_bulk_revoke form table tr th,#badgeos_tools_email_achievement_steps form table tr th,#badgeos_tools_email_achievements form table tr th,#badgeos_tools_email_general form table tr th,#badgeos_tools_email_point_awards form table tr th,#badgeos_tools_email_point_deducts form table tr th,#badgeos_tools_email_rank_steps form table tr th,#badgeos_tools_email_ranks form table tr th,#credit_bulk_award form table tr th,#credit_bulk_revoke form table tr th,#rank_bulk_award form table tr th,#rank_bulk_revoke form table tr th{vertical-align:top;text-align:left;width:40%}#achievement_bulk_award form table tr td .select2-selection,#achievement_bulk_revoke form table tr td .select2-selection,#badgeos_tools_email_achievement_steps form table tr td .select2-selection,#badgeos_tools_email_achievements form table tr td .select2-selection,#badgeos_tools_email_general form table tr td .select2-selection,#badgeos_tools_email_point_awards form table tr td .select2-selection,#badgeos_tools_email_point_deducts form table tr td .select2-selection,#badgeos_tools_email_rank_steps form table tr td .select2-selection,#badgeos_tools_email_ranks form table tr td .select2-selection,#credit_bulk_award form table tr td .select2-selection,#credit_bulk_revoke form table tr td .select2-selection,#rank_bulk_award form table tr td .select2-selection,#rank_bulk_revoke form table tr td .select2-selection{border:1px solid #ddd;max-width:70%;padding:6px 8px}#badgeos_tools_email_achievement_steps form,#badgeos_tools_email_achievements form,#badgeos_tools_email_general form,#badgeos_tools_email_point_awards form,#badgeos_tools_email_point_deducts form,#badgeos_tools_email_rank_steps form,#badgeos_tools_email_ranks form{padding:20px}#TB_window.badgeos-shortcode-thickbox #TB_ajaxContent{overflow-y:auto!important;overflow-x:hidden}#TB_window.badgeos-shortcode-thickbox #TB_ajaxContent .wrap{padding:10px}#TB_window.badgeos-shortcode-thickbox #TB_ajaxContent .wrap .select2-selection__rendered{border:1px solid #ddd;box-shadow:0 0 5px 0 #ddd}#TB_window.badgeos-shortcode-thickbox #TB_ajaxContent .wrap .badgeos_input:nth-child(even){clear:left}#TB_window.badgeos-shortcode-thickbox #TB_ajaxContent #shortcode_options,#TB_window.badgeos-shortcode-thickbox #TB_ajaxContent #shortcode_options>div{clear:left;width:100%}#ldqie_normal_progress_loader{margin:10px auto}#badgeos_ob_normal_progress_bar{width:50%;margin:10px auto}.ui-progressbar{position:relative}.progress-label{position:absolute;left:43%;top:4px;font-weight:700;text-shadow:1px 1px 0 #fff}.badgeos_settings_license_tab{vertical-align:top;padding:10px}.badgeos_item{box-shadow:0 8px 38px 0 rgba(16,16,16,.07);background:#fff;max-width:30%;margin:auto;padding:15px 20px 0;text-align:center;font-family:inherit;width:27%;margin:20px 22px 0 0;float:left}.badgeos_item button{border:none;outline:0;padding:12px;color:#0073aa;background-color:transparent;text-align:center;cursor:pointer;width:100%;font-size:18px}.badgeos_item button:hover{opacity:.7}.badgeos_assets_info_log_content a{display:none}.badgeos_assets_info_log{display:none;margin:10px}.badgeos_assets_info_log_content{padding:10px;overflow:scroll;width:400px;height:300px}.badgeos_download_asset_success_message{font-size:11px;background-color:green;color:#fff;border-radius:5px;padding:5px;margin:5px}.badgeos_download_asset_failed_message{font-size:11px;background-color:red;color:#fff;border-radius:5px;padding:5px;margin:5px}.badgeos_item .badgeos-item-description{text-align:left;font-weight:300;padding:10px;max-height:60px;height:60px}.badgeos-assets-message-divs{max-height:90px;height:90px;overflow:hidden}.badgeos_item .badgeos-item-button{text-align:center}.badgeos-assets-image{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;max-height:180px;overflow:hidden;height:180px;width:200px;margin-left:auto;margin-right:auto}.badgeos-welcome-container{max-width:calc(100% - 161px);width:100%;margin-left:80px;margin-top:32px}.badgeos-welcome-site-inner{max-width:1290px;margin:0 auto;overflow:hidden}.badgeos_dashboard_heading{display:flex;margin:35px 0;align-items:center}.badgeos_dashboard_heading .badgeos_dashboard_title{display:flex;align-items:baseline}.badgeos_dashboard_heading .badgeos_dashboard_title h1{margin:0 20px;font-size:48px}.badgeos_dashboard_heading .badgeos_dashboard_title span{font-size:22px}.badgeos_dashboard_heading img{width:89px}.badgeos_welcome_addons_list .badgeos_welcome_addons_list_ul{margin:0;padding:0}.badgeos_welcome_addons_list .multiple{list-style-type:none;background:#fff;width:30%;display:inline-block}.badgeos_welcome_addons_list .slick-prev{display:block!important;position:absolute;right:100px!important;top:-27px;left:auto}.badgeos_welcome_addons_list .slick-prev:before{color:#222;font-size:20px;content:"\f053";font-family:fontAwesome}.badgeos_welcome_addons_list .slick-next{display:block!important;position:absolute;right:24px;top:-27px}.badgeos_welcome_addons_list .slick-next:before{color:#222;font-size:20px;content:"\f054";font-family:fontAwesome}.badgeos_welcome_addon img{width:100%}.badgeos_welcome_addon{display:flex;padding:1em;border:1px solid #ccc;min-height:17em;height:17em}.badgeos_welcome_addons_panel{margin-bottom:55px}.badgeos_welcome_on_content{font-family:Arial,Helvetica,sans-serif;padding-left:20px}.badgeos_welcome_on_content .badgeos_add-on_name{color:#ed1f6e;font-size:20px;line-height:1.5}.badgeos_addon_welcome_btn{text-align:center}.badgeos_addon_welcome_btn a{font-family:Open Sans,sans-serif;padding:.5em 1em;font-size:12px;white-space:nowrap;background-color:#f7f7f7;color:#000;border:1px solid #adadad}.badgeos_assets_list .slick-prev{display:block!important;position:absolute;right:100px!important;top:-27px;left:auto}.badgeos_assets_list .slick-prev:before{color:#222;font-size:20px;content:"\f053";font-family:fontAwesome}.badgeos_assets_list .slick-next{display:block!important;position:absolute;right:24px;top:-27px}.badgeos_assets_list .slick-next:before{color:#222;font-size:20px;content:"\f054";font-family:fontAwesome}.badgeos_assets_panel{margin-bottom:55px}.badgeos_assets_list ul{margin:0;padding:0}.badgeos_asset{text-align:center;padding:2em 0;border:1px solid #ccc;background-color:#fff}.badgeos_asset img{width:65%}.badgeos_asset_content{font-family:Arial,Helvetica,sans-serif;padding:20px}.badgeos_asset_content .badgeos_asset_name{font-size:22px;line-height:2.2}.badgeos_asset_desc button{font-family:Open Sans,sans-serif;padding:.5em 2em}.badgeos_quick_links{background:#fff;padding:1em;border:1px solid #000;margin-bottom:55px}.badgeos_quick_links ul{padding:0;margin:0}.badgeos_quick_links ul li{list-style-type:none;line-height:2.2}.badgeos_need_help,.badgeos_please_rate{background:#fff;padding:1em;border:1px solid #000;margin-bottom:55px}.bos-need-help{width:120px}.badgeos_need_help p,.badgeos_please_rate p{font-size:inherit}.badgeos_please_rate{background:#fff;padding:1em;border:1px solid #000;margin-bottom:55px}.badgeos_please_rate p{font-size:inherit}@media only screen and (min-width:180px) and (max-width:759px){.badgeos-welcome-container{max-width:calc(100% - 0px);margin-left:0}.badgeos_welcome_addon{display:block;height:auto}.badgeos_welcome_on_content{margin-top:25px}.badgeos_dashboard_heading{margin-bottom:35px}.badgeos_dashboard_heading .badgeos_dashboard_title{display:block;margin:0 20px}.badgeos_dashboard_heading .badgeos_dashboard_title span{line-height:4;margin:0 20px}}.badgeos_please_rate .badgeos-btn-need-help{width:140px}@media only screen and (min-width:1200px) and (max-width:1300px){.badgeos_welcome_addon .badgeos_add_on_desc p{font-size:11px}.badgeos_welcome_addon{height:17em}}
    2 
    3 
    4 
    5 .ldqie_settings_wrapper {
    6     display: none;
    7     max-width: 95%;
    8 }
    9 .input-row {
    10     margin-bottom: 15px;
    11 }
    12 .cs_ld_tabs  .hint {
    13     display: block;
    14     margin: 5px 0;
    15     color: #000;
    16     opacity: 0.5;
    17 }
    18 .cs_ld_tabs td{
    19     vertical-align: top;
    20 }
    21 .ldqie_settings_wrapper table tr td {
    22     padding-bottom: 15px;
    23     padding-right: 15px;
    24 }
    25 .label-textarea {
    26     display: block;
    27     font-size: 15px;
    28     margin-bottom: 5px;
    29     font-weight: 500;
    30 }
    31 .label {
    32     font-size: 15px;
    33     margin-bottom: 5px;
    34     font-weight: 500;
    35 }
    36 .ldqie_settings_wrapper input,
    37 .ldqie_settings_wrapper textarea,
    38 .ldqie_settings_wrapper button {
    39     vertical-align: bottom;
    40 }
    41 .submit-button {
    42     margin: 20px 0;
    43 }
    44 .hidden {
    45     display: none;
    46 }
    47 .import-form-wrapper {
    48     background: #2F4F4F;
    49     padding: 20px;
    50     box-shadow: 0 0 1px 3px #dddddd;
    51     color: #fff;
    52     margin-top: 50px;
    53     max-width: 95%;
    54 }
    55 .import-form-wrapper h2 {
    56     color: #fff;
    57 }
    58 #ldqie_import_file::-webkit-file-upload-button {
    59     visibility: hidden;
    60 }
    61 #ldqie_import_file:hover::before {
    62     border-color: #0073aa;
    63 }
    64 #ldqie_import_file:active::before {
    65     background: #0073aa;
    66 }
    67 #ldqie_import_file:focus {
    68     outline: none;
    69 }
    70 .import-form-wrapper input[type="submit"] {
    71     background: #0073aa;
    72     color: #fff;
    73     outline: none;
    74     border: 1px solid #0073aa;
    75     border-radius: 2px;
    76     padding: 8px;
    77     cursor: pointer;
    78 }
    79 .ldqie-notice-success {
    80     border: 1px solid #333;
    81     border-radius: 4px;
    82     background-color: #296b2f;
    83     box-shadow: inset 0 0 1px 1px #fff;
    84     padding: 4px 8px;
    85     color: #fff;
    86 }
    87 .ldqie-notice-warning {
    88     border: 1px solid #333;
    89     border-radius: 4px;
    90     background-color: #B22222;
    91     box-shadow: inset 0 0 1px 1px #fff;
    92     padding: 4px 8px;
    93     color: #fff;
    94 }
    95 .ldqie-notice-success .notice-dismiss:active:before,
    96 .ldqie-notice-success .notice-dismiss:focus:before,
    97 .ldqie-notice-success .notice-dismiss:hover:before,
    98 .ldqie-notice-warning .notice-dismiss:active:before,
    99 .ldqie-notice-warning .notice-dismiss:focus:before,
    100 .ldqie-notice-warning .notice-dismiss:hover:before {
    101     color: #fff;
    102 }
    103 .ldqie-notice-success a {
    104     color: #fff;
    105 }
    106 .ldqie-notice-success a:hover,
    107 .ldqie-notice-success a:active,
    108 .ldqie-notice-success a:focus {
    109     color: #fff;
    110 }
    111 .ldqie-btn {
    112     background: #0073aa;
    113     color: #fff;
    114     outline: none;
    115     border: 1px solid #0073aa;
    116     border-radius: 4px;
    117     padding: 5px 8px;
    118     cursor: pointer;
    119 }
    120 .ldqie-btn:focus,
    121 .ldqie-btn:hover,
    122 .ldqie-btn:active {
    123     background: #0073aa;
    124     color: #fff;
    125     outline: none;
    126     border: 1px solid #0073aa;
    127     border-radius: 4px;
    128     padding: 5px 8px;
    129     cursor: pointer;
    130 }
    131 td.column-export,
    132 td.column-import {
    133     vertical-align: middle;
    134 }
    135 
    136 
    137 /* File Upload page CSS */
    138 
    139 *,
    140 .box :after,
    141 .box :before {
    142     -webkit-box-sizing: border-box;
    143     box-sizing: border-box;
    144 }
    145 
    146 .clearfix:before,
    147 .clearfix:after {
    148     display: table;
    149     content: '';
    150 }
    151 
    152 .clearfix:after {
    153     clear: both;
    154 }
    155 
    156 .import-excel-page a {
    157     outline: none;
    158     color: #d3394c;
    159     text-decoration: none;
    160 }
    161 
    162 .import-excel-page a:hover,
    163 .import-excel-page a:focus {
    164     color: #722040;
    165 }
    166 
    167 .submit .import-btn
    168 {
    169     width: 476px;
    170     font-size: 18px;
    171     height: 46px;
    172 }
    173 .import-excel-page .hidden {
    174     position: absolute;
    175     overflow: hidden;
    176     width: 0;
    177     height: 0;
    178     pointer-events: none;
    179 }
    180 
    181 
    182 .import-excel-page .box {
    183     background-color: rgba(0, 115, 170, 0.35);
    184     padding: 4.25rem 0.1rem;
    185 }
    186 
    187 .import-excel-page .box + .box {
    188     margin-top: 2.5rem;
    189 }
    190 
    191 /* Content */
    192 
    193 .import-excel-page .content {
    194     width: 80%;
    195     text-align: center;
    196     margin: 0 auto;
    197 
    198 }
    199 
    200 .import-excel-page .content-full {
    201     width: 100%;
    202     text-align: center;
    203     margin: 0 auto;
    204 
    205 }
    206 
    207 div.ld_qie_shared_question_default_message {
    208     padding: 2em 0px;
    209 
    210 }
    211 
    212 .js .inputfile {
    213     width: 0.1px;
    214     height: 0.1px;
    215     opacity: 0;
    216     overflow: hidden;
    217     position: absolute;
    218     z-index: -1;
    219 }
    220 
    221 .inputfile + label {
    222     max-width: 80%;
    223     font-size: 1.25rem;
    224     /* 20px */
    225     font-weight: 700;
    226     text-overflow: ellipsis;
    227     white-space: nowrap;
    228     cursor: pointer;
    229     display: inline-block;
    230     overflow: hidden;
    231     padding: 0.625rem 1.25rem;
    232     /* 10px 20px */
    233 }
    234 
    235 .no-js .inputfile + label {
    236     display: none;
    237 }
    238 
    239 .inputfile:focus + label,
    240 .inputfile.has-focus + label {
    241     outline: 1px dotted #000;
    242     outline: -webkit-focus-ring-color auto 5px;
    243 }
    244 
    245 .inputfile + label * {
    246     /* pointer-events: none; */
    247     /* in case of FastClick lib use */
    248 }
    249 
    250 .inputfile + label svg {
    251     width: 1em;
    252     height: 1em;
    253     vertical-align: middle;
    254     fill: currentColor;
    255     margin-top: -0.25em;
    256     /* 4px */
    257     margin-right: 0.25em;
    258     /* 4px */
    259 }
    260 
    261 /* style 6 */
    262 
    263 .inputfile-6 + label {
    264     color: #0073aa;
    265 }
    266 
    267 .inputfile-6 + label {
    268     border: 1px solid #0073aa;
    269     background-color: #f1e5e6;
    270     padding: 0;
    271 }
    272 
    273 .inputfile-6:focus + label,
    274 .inputfile-6.has-focus + label,
    275 .inputfile-6 + label:hover {
    276     border-color: #722040;
    277 }
    278 
    279 .inputfile-6 + label span,
    280 .inputfile-6 + label strong {
    281     padding: 0.625rem 1.25rem;
    282     /* 10px 20px */
    283 }
    284 
    285 .inputfile-6 + label span {
    286     width: 200px;
    287     min-height: 2em;
    288     display: inline-block;
    289     text-overflow: ellipsis;
    290     white-space: nowrap;
    291     overflow: hidden;
    292     vertical-align: top;
    293 }
    294 
    295 .inputfile-6 + label strong {
    296     height: 100%;
    297     color: #f1e5e6;
    298     background-color: #0073aa;
    299     display: inline-block;
    300 }
    301 
    302 .inputfile-6:focus + label strong,
    303 .inputfile-6.has-focus + label strong,
    304 .inputfile-6 + label:hover strong {
    305     background-color: #0073aa;
    306 }
    307 
    308 @media screen and (max-width: 50em) {
    309     .inputfile-6 + label strong {
    310         display: block;
    311     }
    312 }
    313 #setting_tabs {
    314     padding: 0px;
    315     background: none;
    316     border-width: 0px;
    317 }
    318 #setting_tabs.cs_ld_tabs {
    319     padding: 20px 0;
    320 }
    321 #setting_tabs input,
    322 #setting_tabs textarea,
    323 #setting_tabs button {
    324     vertical-align: bottom;
    325     padding: 10px 12px;
    326     -webkit-border-radius: 4px;
    327     -moz-border-radius: 4px;
    328     border-radius: 4px;
    329 }
    330 #setting_tabs .hint {
    331     display: block;
    332     margin: 5px 0;
    333     color: #000;
    334     opacity: 0.5;
    335 }
    336 #setting_tabs input.button-primary {
    337     padding: 0 10px 1px;
    338 }
    339 #setting_tabs .setting-table-wrapper > table > tbody > tr > td {
    340     padding-bottom: 15px;
    341     padding-right: 15px;
    342     vertical-align: top;
    343 }
    344 #setting_tabs .setting-table-wrapper > table > tbody > tr > td:first-child {
    345     width: 30%;
    346 }
    347 #setting_tabs select[multiple] {
    348     width: 40%;
    349     padding: 8px;
    350 }
    351 .columns {
    352     float: left;
    353     width: 33.3%;
    354     padding: 8px;
    355 }
    356 .price {
    357     list-style-type: none;
    358     border: 1px solid #eee;
    359     margin: 0;
    360     padding: 0;
    361     -webkit-transition: 0.3s;
    362     transition: 0.3s;
    363 }
    364 .price:hover {
    365     box-shadow: 0 8px 12px 0 rgba(0,0,0,0.2);
    366     cursor: pointer;
    367 }
    368 .price .header {
    369     background-color: #111;
    370     color: white;
    371     font-size: 25px;
    372 }
    373 .price div {
    374     border-bottom: 1px solid #eee;
    375     padding: 20px;
    376     text-align: center;
    377     margin-bottom:0px !important;
    378 }
    379 .price .grey {
    380     background-color: #eee;
    381     font-size: 20px;
    382 }
    383 @media only screen and (max-width: 600px) {
    384     .columns {
    385         width: 100%;
    386     }
    387 }
    388 .custom-fields-wrapper {
    389     margin-top: 10px;
    390     padding: 10px;
    391     border: 1px solid #C2C2C2;
    392 }
    393 .custom-field-table {
    394     width: 100%;
    395     text-align: left;
    396 }
    397 .custom-field_dropDownEditBox {
    398     position: absolute;
    399     border: 1px solid #AFAFAF;
    400     background: #EBEBEB;
    401     padding: 5px;
    402     bottom: 0;
    403     right: 0;
    404     box-shadow: 1px 1px 1px 1px #AFAFAF;
    405     display: none;
    406 }
    407 .form_move {
    408     cursor:move;
    409 }
    410 #setting_tabs .custom-fields-wrapper .button-secondary {
    411     height: auto;
    412     padding: 2px 8px;
    413     vertical-align: middle;
    414 }
    415 #resultTextGrade{
    416     height: auto;
    417 }
    418 #results_text_activation textarea {
    419     width:100% !important;
    420 }
    421 .ldqi_bottom_bar{
    422     margin-bottom: 5px;
    423     background-color: rgb(207, 207, 207);
    424     padding: 10px;
    425     vertical-align: top !important;
    426     line-height: 25px;
    427 }
    428 .ldqie_small_text{
    429     height: 14px;
    430     width: 50px;
    431     border:1px solid #000;
    432 
    433 }
    434 .ldqie_lnk_btns{
    435     float: right;
    436     margin-left:5px !important
    437 }
    438 
    439 
    440 
    441 
    442 .ldqie-switch {
    443     position: relative;
    444     display: inline-block;
    445     width: 50px;
    446     height: 24px;
    447 }
    448 
    449 .ldqie-switch input {
    450     opacity: 0;
    451     width: 0;
    452     height: 0;
    453 }
    454 
    455 .ldqie-switch .slider {
    456     position: absolute;
    457     cursor: pointer;
    458     top: 0;
    459     left: 0;
    460     right: 0;
    461     bottom: 0;
    462     background-color: #ccc;
    463     -webkit-transition: .4s;
    464     transition: .4s;
    465 }
    466 
    467 .ldqie-switch .slider:before {
    468     position: absolute;
    469     content: "";
    470     height: 16px;
    471     width: 16px;
    472     left: 4px;
    473     bottom: 4px;
    474     background-color: white;
    475     -webkit-transition: .4s;
    476     transition: .4s;
    477 }
    478 
    479 .ldqie-switch input:checked + .slider {
    480     background-color: green;
    481 }
    482 
    483 .ldqie-switch input:focus + .slider {
    484     box-shadow: 0 0 1px green;
    485 }
    486 
    487 .ldqie-switch input:checked + .slider:before {
    488     -webkit-transform: translateX(26px);
    489     -ms-transform: translateX(26px);
    490     transform: translateX(26px);
    491 }
    492 
    493 /* Rounded sliders */
    494 .ldqie-switch .slider.round {
    495     border-radius: 34px;
    496 }
    497 .ldqie-switch .slider.round:before {
    498     border-radius: 50%;
    499 }
    500 #frm_ldqie input[type=number] {
    501     height: auto;
    502 }
    503 .ldqie_sub_table {
    504     width:100%;
    505 }
    506 body.ld-quiz-import_page_ldqie-settings .nav-tab-wrapper > a {
    507     margin-left: 0 !important;
    508 }
    509 #setting_tabs .setting-table-wrapper .ldqie_sub_table table tr > td:first-child {
    510     width: 30%;
    511     padding-bottom: 15px;
    512 }
    513 #setting_tabs .setting-table-wrapper #showReviewQuestion_detail > table {
    514     width: 100%;
    515 }
    516 #setting_tabs .setting-table-wrapper #showReviewQuestion_detail table tr > td:first-child {
    517     width: 30%;
    518 }
    519 #setting_tabs .setting-table-wrapper #custom_sorting_detail > table {
    520     width: 100%;
    521 }
    522 #setting_tabs .setting-table-wrapper #custom_sorting_detail table tr > td:first-child {
    523     width: 30%;
    524 }
    525 #setting_tabs .setting-table-wrapper #custom_question_elements_detail > table {
    526     width: 100%;
    527 }
    528 #setting_tabs .setting-table-wrapper #custom_question_elements_detail table tr > td:first-child {
    529     width: 30%;
    530 }
    531 #setting_tabs .setting-table-wrapper #custom_result_data_display_detail > table {
    532     width: 100%;
    533 }
    534 #setting_tabs .setting-table-wrapper #custom_result_data_display_detail table tr > td:first-child {
    535     width: 30%;
    536 }
    537 #setting_tabs .setting-table-wrapper #custom_answer_feedback_detail > table {
    538     width: 100%;
    539 }
    540 #setting_tabs .setting-table-wrapper #custom_answer_feedback_detail table tr > td:first-child {
    541     width: 30%;
    542 }
    543 #setting_tabs .setting-table-wrapper #toplistActivated_detail > table {
    544     width: 100%;
    545 }
    546 #setting_tabs .setting-table-wrapper #toplistActivated_detail table tr > td:first-child {
    547     width: 30%;
    548 }
    549 #setting_tabs .setting-table-wrapper #statisticsOn_detail > table {
    550     width: 100%;
    551 }
    552 #setting_tabs .setting-table-wrapper #statisticsOn_detail table tr > td:first-child {
    553     width: 30%;
    554 }
    555 #setting_tabs .setting-table-wrapper #email_enabled_admin_detail {
    556     width: 250px;
    557 }
    558 #setting_tabs .setting-table-wrapper #email_enabled_detail > table {
    559     width: 100%;
    560 }
    561 #setting_tabs .setting-table-wrapper #email_enabled_detail table tr > td:first-child {
    562     width: 30%;
    563 }
    564 #setting_tabs .setting-table-wrapper #advanced_settings_detail > table {
    565     width: 100%;
    566 }
    567 #setting_tabs .setting-table-wrapper #advanced_settings_detail table tr > td:first-child {
    568     width: 30%;
    569 }
    570 #setting_tabs .setting-table-wrapper #toplistDataShowIn_enabled_detail > table {
    571     width: 100%;
    572 }
    573 #setting_tabs .setting-table-wrapper #toplistDataShowIn_enabled_detail table tr > td:first-child {
    574     width: 30%;
    575 }
    576 #setting_tabs .setting-table-wrapper #ldqie_certificate_extra_opts > table {
    577     width: 100%;
    578 }
    579 #setting_tabs .setting-table-wrapper #ldqie_certificate_extra_opts table tr > td:first-child {
    580     width: 30%;
    581 }
    582 #setting_tabs .setting-table-wrapper #ldqie_retry_restrictions_extra_opts > table {
    583     width: 100%;
    584 }
    585 #setting_tabs .setting-table-wrapper #ldqie_retry_restrictions_extra_opts table tr > td:first-child {
    586     width: 30%;
    587 }
    588 
    589 .ld-quiz-import_page_ldqie-settings .wrap {
    590     display: flex;
    591     flex-wrap: wrap;
    592 }
    593 .ld-quiz-import_page_ldqie-settings .wrap .error {
    594     width: 100%;
    595 }
    596 .ld-quiz-import_page_ldqie-settings .wrap .notice.is-dismissible {
    597     width: 100%;
    598 }
    599 .ld-quiz-import_page_ldqie-settings .nav-tab-wrapper {
    600     flex-direction: column;
    601     display: flex;
    602     flex-wrap: nowrap;
    603     padding-top: 0;
    604     width: 23%;
    605 }
    606 .ld-quiz-import_page_ldqie-settings .nav-tab-wrapper a.nav-tab {
    607     border: none;
    608     background: linear-gradient(to left, #00A0D2, #0073aa);
    609     margin-bottom: 15px;
    610     padding: 10px;
    611     color: #fff;
    612     text-transform: uppercase;
    613     transition: 0.3s;
    614     font-size: 12px;
    615 }
    616 .ld-quiz-import_page_ldqie-settings .nav-tab-wrapper a.nav-tab:hover {
    617     background-color: #6741d9;
    618     box-shadow: 0px 0px 10px #999;
    619 }
    620 .ld-quiz-import_page_ldqie-settings .nav-tab-wrapper a.nav-tab.nav-tab-active {
    621     background: linear-gradient(to right, #eee, #fff);
    622     color: #444;
    623     box-shadow: 0px 0px 10px #999;
    624 }
    625 .ld-quiz-import_page_ldqie-settings #setting_tabs.cs_ld_tabs {
    626     padding: 20px !important;
    627     width: 75%;
    628     background: #f9f9f9;
    629     margin: 0 9px;
    630 }
    631 #setting_tabs.cs_ld_tabs .ldqie-switch input:checked + .slider {
    632     background-color: #428bca;
    633 }
    634 
    635 #ld_qie_loader_spinner > p > img {
    636     width: 50px;
    637 }
    638 
    639 #ld_qie_import_messages > .notice {
    640     background-color: #f1f1f1;
    641     color: #000;
    642     width: 79%;
    643     margin: 10px auto;
    644 
    645 }
    646 
    647 #ld_qie_import_messages > .notice > p > span > a {
    648     margin-right: 10px;
    649 }
    650 
    651 #ld_qie_import_messages > .notice > p > span {
    652     float: right;
    653     font-weight: bold;
    654     margin-left: 10px;
    655 }
    656 
    657 .box-wide{
    658     width:100% !important;
    659     margin:auto;
    660     padding:1px !important;
    661 }
    662 
    663 
    664 
    665 #add_questions_table {
    666     border: 1px solid #ccd0d4;
    667 }
    668 
    669 .ld_qie_table {
    670     font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
    671     border-collapse: collapse;
    672     width: 100%;
    673     font-size: 13px;
    674 
    675 }
    676 
    677 .ld_qie_table td, .ld_qie_table th {
    678     border-bottom: 1px solid #999;
    679     padding: 8px;
    680     text-align: left;
    681 }
    682 .ld_qie_table tr:last-child > td{
    683     border-bottom: 0px;
    684 }
    685 
    686 .ld_qie_table tr:nth-child(even){background-color: #f2f2f2;}
    687 
    688 .ld_qie_table tr:hover {background-color: #ddd;}
    689 
    690 .ld_qie_table th {
    691     padding-top: 12px;
    692     padding-bottom: 12px;
    693     text-align: left;
    694     background-color: #DDD;
    695 }
    696 
    697 .ld_qie_float_right {
    698     float: right;
    699 }
    700 .ld_qie_float_left {
    701     float: right;
    702 }
    703 .ld_qie_clear {
    704     clear: both;
    705 }
    706 
    707 
    708 
    709 /**SPINNER START**/
    710 .ld_qie_spinner {
    711     position: absolute;
    712     left: 45%;
    713     top: 50%;
    714     height:100px;
    715     width:100px;
    716     margin:0px auto;
    717     -webkit-animation: rotation .6s infinite linear;
    718     -moz-animation: rotation .6s infinite linear;
    719     -o-animation: rotation .6s infinite linear;
    720     animation: rotation .6s infinite linear;
    721     border-left:6px solid rgba(0,174,239,.15);
    722     border-right:6px solid rgba(0,174,239,.15);
    723     border-bottom:6px solid rgba(0,115,170,.8);
    724     border-top:6px solid rgba(0,174,239,.8);
    725     border-radius:100%;
    726 }
    727 
    728 @-webkit-keyframes rotation {
    729     from {-webkit-transform: rotate(0deg);}
    730     to {-webkit-transform: rotate(359deg);}
    731 }
    732 @-moz-keyframes rotation {
    733     from {-moz-transform: rotate(0deg);}
    734     to {-moz-transform: rotate(359deg);}
    735 }
    736 @-o-keyframes rotation {
    737     from {-o-transform: rotate(0deg);}
    738     to {-o-transform: rotate(359deg);}
    739 }
    740 @keyframes rotation {
    741     from {transform: rotate(0deg);}
    742     to {transform: rotate(359deg);}
    743 }
    744 /**SPINNER END**/
    745 
    746 
    747 #ld_qie_search_box {
    748     width: 50%;
    749     margin: 10px auto;
    750 }
    751 #ld_qie_content_wrap {
    752     position: relative;
    753     padding: 10px;
    754 }
    755 #ld_qie_loader_spinner {
    756     position: absolute;
    757     top:0px;
    758     left:0px;
    759     width: 100%;
    760     height: 100%;
    761     opacity: .5;
    762     z-index: 999999;
    763 }
    764 
    765 /* Quiz listing table elements width */
    766 #ld_qie_quiz_listing_table .ld_qie_table td, .ld_qie_table th {
    767     padding: 8px;
    768 }
    769 
    770 #ld_qie_quiz_listing_table .ld_qie_table td {
    771     width: 20%;
    772 }
    773 
    774 #ld_qie_quiz_listing_table .ld_qie_table td:first-child {
    775     width: 3%;
    776 }
    777 
    778 #ld_qie_quiz_listing_table .ld_qie_table td:nth-child(3), #ld_qie_quiz_listing_table .ld_qie_table tr td:last-child {
    779     width: 5%;
    780 }
    781 #ld_qie_quiz_listing_table .ld_qie_table td:nth-child(3) input, #ld_qie_quiz_listing_table .ld_qie_table tr td:last-child input {
    782     width: 60px;
    783 }
    784 
    785 #ld_qie_quiz_listing_table .ld_qie_table .select2.select2-container.select2-container--default {
    786     width: 229px !important;
    787 }
    788 /* Quiz listing table elements width */
    789 
    790 /* Pagination Classes */
    791 .ld_qie_pagination {
    792     display:inline-block;
    793     padding-left:0;
    794     margin:20px 0;
    795     border-radius:4px
    796 }
    797 .ld_qie_pagination>li {
    798     display:inline
    799 }
    800 .ld_qie_pagination>li>a,
    801 .ld_qie_pagination>li>span {
    802     position:relative;
    803     float:left;
    804     padding:6px 12px;
    805     margin-left:-1px;
    806     line-height:1.42857143;
    807     color:#337ab7;
    808     text-decoration:none;
    809     background-color:#fff;
    810     border:1px solid #ddd
    811 }
    812 .ld_qie_pagination>li:first-child>a,
    813 .ld_qie_pagination>li:first-child>span {
    814     margin-left:0;
    815     border-top-left-radius:4px;
    816     border-bottom-left-radius:4px
    817 }
    818 .ld_qie_pagination>li:last-child>a,
    819 .ld_qie_pagination>li:last-child>span {
    820     border-top-right-radius:4px;
    821     border-bottom-right-radius:4px
    822 }
    823 .ld_qie_pagination>li>a:focus,
    824 .ld_qie_pagination>li>a:hover,
    825 .ld_qie_pagination>li>span:focus,
    826 .ld_qie_pagination>li>span:hover {
    827     z-index:2;
    828     color:#23527c;
    829     background-color:#eee;
    830     border-color:#ddd
    831 }
    832 .ld_qie_pagination>.active>a,
    833 .ld_qie_pagination>.active>a:focus,
    834 .ld_qie_pagination>.active>a:hover,
    835 .ld_qie_pagination>.active>span,
    836 .ld_qie_pagination>.active>span:focus,
    837 .ld_qie_pagination>.active>span:hover {
    838     z-index:3;
    839     color:#fff;
    840     cursor:default;
    841     background-color:#337ab7;
    842     border-color:#337ab7
    843 }
    844 .ld_qie_pagination>.disabled>a,
    845 .ld_qie_pagination>.disabled>a:focus,
    846 .ld_qie_pagination>.disabled>a:hover,
    847 .ld_qie_pagination>.disabled>span,
    848 .ld_qie_pagination>.disabled>span:focus,
    849 .ld_qie_pagination>.disabled>span:hover {
    850     color:#777;
    851     cursor:not-allowed;
    852     background-color:#fff;
    853     border-color:#ddd
    854 }
    855 .ld_qie_pagination-lg>li>a,
    856 .ld_qie_pagination-lg>li>span {
    857     padding:10px 16px;
    858     font-size:18px;
    859     line-height:1.3333333
    860 }
    861 .ld_qie_pagination-lg>li:first-child>a,
    862 .ld_qie_pagination-lg>li:first-child>span {
    863     border-top-left-radius:6px;
    864     border-bottom-left-radius:6px
    865 }
    866 .ld_qie_pagination-lg>li:last-child>a,
    867 .ld_qie_pagination-lg>li:last-child>span {
    868     border-top-right-radius:6px;
    869     border-bottom-right-radius:6px
    870 }
    871 .ld_qie_pagination-sm>li>a,
    872 .ld_qie_pagination-sm>li>span {
    873     padding:5px 10px;
    874     font-size:12px;
    875     line-height:1.5
    876 }
    877 .ld_qie_pagination-sm>li:first-child>a,
    878 .ld_qie_pagination-sm>li:first-child>span {
    879     border-top-left-radius:3px;
    880     border-bottom-left-radius:3px
    881 }
    882 .ld_qie_pagination-sm>li:last-child>a,
    883 .ld_qie_pagination-sm>li:last-child>span {
    884     border-top-right-radius:3px;
    885     border-bottom-right-radius:3px
    886 }
    887 
    888 .ld_qie_pagination li:hover{
    889     cursor: pointer;
    890 }
    891 /* Pagination Classes */
    892 
    893 /* Buttons Classes */
    894 .ld-qie-button {
    895     font-size: 1rem !important;
    896 }
    897 
    898 .ld-qie-button span.dashicons {
    899     line-height: 38px;
    900     margin-left: -5px;
    901 }
    902 
    903 .ld-qie-button span.dashicons.no-left-margin {
    904     margin-left: 0 !important;
    905 }
    906 /* Buttons Classes */
    907 
    908 /* Add existing questions table elements width */
    909 #add_questions_table .ld_qie_table td, .ld_qie_table th {
    910     padding: 8px;
    911 }
    912 
    913 #add_questions_table .ld_qie_table td {
    914     width: 15%;
    915 }
    916 
    917 #add_questions_table .ld_qie_table td:first-child, #add_questions_table .ld_qie_table td:last-child {
    918     width: 3%;
    919 }
    920 
    921 #add_questions_table .ld_qie_table td:nth-child(3), #add_questions_table .ld_qie_table td:nth-child(5) {
    922     width: 5%;
    923 }
    924 
    925 #add_questions_table .ld_qie_table td:nth-child(6) {
    926     width: 52%;
    927 }
    928 
    929 
    930 #add_questions_table .ld_qie_table .select2.select2-container.select2-container--default {
    931     width: 100% !important;
    932 }
    933 
    934 #add_questions_table abbr {
    935     cursor: help;
    936 }
    937 /* Quiz listing table elements width */
    938 
    939 /* Import progress elements */
    940 
    941 #ld_qie_progress_bar {
    942     display: none;
    943     height: 50px;
    944     background-color: #2f7900;
    945 }
    946 
    947 #ld_qie_progress {
    948     width: 100%;
    949     background-color: #ddd;
    950     height: 30px;
    951 }
    952 
    953 #ld_qie_bar {
    954     height: 30px;
    955     background-color: #4CAF50;
    956     text-align: center; /* To center it horizontally (if you want) */
    957     line-height: 30px; /* To center it vertically */
    958     color: white;
    959 }
    960 
    961 #ld_qie_bar > span {
    962     padding: 0px 5px;
    963 }
    964 
    965 #ld_qie_import_logs {
    966     font-family: Consolas,Monaco,monospace;
    967     background: #e0e0e0;
    968     width: 100%;
    969     height: 300px;
    970     padding: 5px;
    971     margin-top: 10px;
    972     overflow-y: auto;
    973 }
    974 
    975 span.ld_qie_import_log_error {
    976     color: red;
    977 }
    978 /* Import progress elements */
    979 
    980 
    981 /** Debug Log **/
    982 .ld-qie-error-logs .copy-button-wrapper {
    983     margin: 10px 0;
    984 }
    985 
    986 .ld-qie-error-logs .ld-qie-code-box {
    987     background: rgba(255,255,255,.5);
    988     border-color: rgba(220,220,222,.75);
    989     box-shadow: inset 0 1px 2px rgba(0,0,0,.04);
    990     color: rgba(44,51,56,.5);
    991 }
    992 /** Debug Log **/
    993 
    994 
    995 /** Highlight Error Effect **/
    996 .wn-notice-error.wn-license-error {
    997     animation: wn-notice-error-highlight 500ms ease-out 500ms;
    998 }
    999 
    1000 @keyframes wn-notice-error-highlight {
    1001     from {
    1002         background-color: red;
    1003     }
    1004 }
    1005 /** Highlight Error Effect **/
    1006 
    1007 /** License Tab **/
    1008 .wn-license-activated-icon {
    1009     color: green; font-size:2em
    1010 }
    1011 /** License Tab **/
    1012 
    1013 /** Select2 **/
    1014 #ld_qie_setting_quiz_select,
    1015 #ld_qie_question_search,
    1016 #ld_qie_search_box .select2.select2-container.select2-container--default {
    1017     width: 80% !important;
    1018     max-width: 80% !important;
    1019 }
    1020 /** Select2 **/
     1#icon-badgeos_badgeos{background-image:url('../images/badgeos_screen_icon.png')}li.step-row{background:#fff;border-radius:5px;border:1px solid #ddd;padding:5px 10px}.badgeos-user-earned-achievements-admin-block,.badgeos-user-earned-ranks-admin-block{color:#444;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:13px;line-height:1.4em}li.step-row .step-handle{display:block;background:url('../images/ui_handle.png');width:7px;height:4em;margin:5px 10px 5px 0;position:relative;float:left}li.step-row .required-duration{text-align:right}li.step-row .step-title{display:block;padding-top:5px}li.step-row .title{width:300px}li.step-row .delete-step{position:relative;float:right;line-height:4.5em}.badgeos-table th{font-weight:700;padding:8px 10px;text-transform:uppercase}.badgeos-table a.error{color:#a00}.badgeos-license-status{background:#eee;color:#333;padding:3px 8px;border:1px solid #ddd;border-radius:3px}.badgeos-license-status.failed,.badgeos-license-status.invalid{background:#faa;border-color:#a55;color:#a00}.badgeos-license-status.active,.badgeos-license-status.valid{background:#ac7;border-color:#7a5;color:#250}.badgeos-addons .addon{display:block;background:#fafafa;border:1px solid #eee;padding:1em;margin:0 1em 1em 0;min-width:200px;max-width:25%;position:relative;float:left}.badgeos-addons .addon:nth-child(3n+4){clear:both}.badgeos-addons .addon .thumbnail-link{display:block;margin:0 auto;width:200px;height:200px;text-align:center}.badgeos-addons .addon img{max-width:100%}.wp-core-ui a.badgeos_media_link,.wp-core-ui a.badgeos_media_link:hover{background:url('../images/badgeos_icon.png') 4% 50% no-repeat;padding-left:1.8em}.badgeos_input{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;padding:5px;width:50%}.badgeos_input>div{margin:5px 0}#shortcode_options{margin-top:10px;min-height:100%;overflow:auto;padding-top:10px;width:100%}#shortcode_options label{font-weight:700}#shortcode_options span{font-style:italic}.odd{clear:both}.clear{clear:both}#select2-drop{z-index:100051}#delete_log_entries{margin:2px 8px 0 0}.delete-log-entries.notice img{vertical-align:middle}#revoke-badges-loader{width:25px;margin-left:20px;display:none}.form-table td.bulk-delete-detail{padding-left:20px}.profile-php .earned-user-credits-wrapper,.user-edit-php .earned-user-credits-wrapper{width:100%;overflow:hidden;margin-bottom:30px;margin-top:30px}.profile-php .earned-user-credits-wrapper .badgeos-credits,.user-edit-php .earned-user-credits-wrapper .badgeos-credits{border:1px solid #e8e8e8;position:relative}.profile-php .earned-user-credits-wrapper .badgeos-credits .badgeos-credit-edit,.user-edit-php .earned-user-credits-wrapper .badgeos-credits .badgeos-credit-edit{position:absolute;right:15px;top:15px;cursor:pointer;color:#0073aa}.profile-php .earned-user-credits-wrapper .badgeos-credits .badgeos-edit-credit-wrapper,.user-edit-php .earned-user-credits-wrapper .badgeos-credits .badgeos-edit-credit-wrapper{padding:9px 0}.profile-php .earned-user-credits-wrapper .badgeos-credits .badgeos-earned-credit,.user-edit-php .earned-user-credits-wrapper .badgeos-credits .badgeos-earned-credit{padding:15px 0}.profile-php .earned-user-credits-wrapper .badgeos-credits h3,.user-edit-php .earned-user-credits-wrapper .badgeos-credits h3{margin:0}.profile-php .earned-user-credits-wrapper .badgeos-credits:nth-child(odd),.user-edit-php .earned-user-credits-wrapper .badgeos-credits:nth-child(odd){width:40%;margin:20px 2%;float:left;padding:1%;box-shadow:1px 1px 3px 2px #ccc;background-color:#fff}.profile-php .earned-user-credits-wrapper .badgeos-credits:nth-child(even),.user-edit-php .earned-user-credits-wrapper .badgeos-credits:nth-child(even){width:40%;margin:20px 2%;float:right;padding:1%;box-shadow:1px 1px 3px 2px #ccc;background-color:#fff}.profile-php .badgeos-rank-table .revoke-rank,.user-edit-php .badgeos-rank-table .revoke-rank{cursor:pointer;color:#a00}.profile-php .badgeos-rank-table .award-rank,.user-edit-php .badgeos-rank-table .award-rank{cursor:pointer;color:#0073aa}.profile-php .badgeos-achievement-table,.profile-php .badgeos-rank-table,.user-edit-php .badgeos-achievement-table,.user-edit-php .badgeos-rank-table{border-top:1px solid #e8e8e8;border-bottom:1px solid #e8e8e8;box-shadow:0 0 1px 2px #e8e8e8;margin-bottom:30px}.profile-php .badgeos-achievement-table thead,.profile-php .badgeos-rank-table thead,.user-edit-php .badgeos-achievement-table thead,.user-edit-php .badgeos-rank-table thead{border-bottom:1px solid #e8e8e8;padding:10px}.profile-php .badgeos-achievement-table tfoot,.profile-php .badgeos-rank-table tfoot,.user-edit-php .badgeos-achievement-table tfoot,.user-edit-php .badgeos-rank-table tfoot{border-top:1px solid #e8e8e8;padding:10px}.profile-php .badgeos-achievement-table th,.profile-php .badgeos-rank-table th,.user-edit-php .badgeos-achievement-table th,.user-edit-php .badgeos-rank-table th{padding:10px;background-color:#f6f6f6}.profile-php .badgeos-achievement-table td,.profile-php .badgeos-rank-table td,.user-edit-php .badgeos-achievement-table td,.user-edit-php .badgeos-rank-table td{padding:10px}.profile-php .badgeos-achievement-table tbody tr:nth-child(odd),.profile-php .badgeos-rank-table tbody tr:nth-child(odd),.user-edit-php .badgeos-achievement-table tbody tr:nth-child(odd),.user-edit-php .badgeos-rank-table tbody tr:nth-child(odd){background-color:#fff}.profile-php .badgeos-achievement-table .revoke-achievement,.profile-php .badgeos-rank-table .revoke-rank,.user-edit-php .badgeos-achievement-table .revoke-achievement,.user-edit-php .badgeos-rank-table .revoke-rank{cursor:pointer;color:#a00}.profile-php .badgeos-achievement-table .award-achievement,.profile-php .badgeos-rank-table .award-rank,.user-edit-php .badgeos-achievement-table .award-achievement,.user-edit-php .badgeos-rank-table .award-rank{cursor:pointer;color:#0073aa}.profile_ranks_last_award_field{font-size:20px!important;font-weight:bolder}.badgeos-migration-form-table td{margin-left:3px;padding:7px}.badgeos-migration-form-table h3{margin:0;padding:0}.ui-tabs-vertical{width:100%}.ui-tabs-vertical .ui-tabs-nav{float:left;width:25%}.ui-tabs-vertical .ui-tabs-nav li{clear:left;width:100%;border-bottom-width:1px!important;border-right-width:0!important;margin:0 -1px .2em 0;display:block}.ui-tabs-vertical .ui-tabs-nav li a{display:block;width:100%;padding:8px 0!important}.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active{padding-bottom:0;padding-right:.1em;border-right-width:1px}.ui-tabs-vertical .ui-tabs-panel{padding:1em;float:right;width:calc(75% - 2px)}#badgeos-setting-tabs .ui-tabs-panel{padding:1em;float:right;width:calc(72% - 3px)}#badgeos-setting-tabs td,th{font-size:14px;text-align:left;vertical-align:top}#achievement-tabs,#badgeos-setting-tabs,#credit-tabs,#email-tabs,#rank-tabs,#system-tabs{margin-top:20px;background-color:#f6f6f6;border-color:#ccc;box-shadow:0 0 1px 2px #e8e8e8;padding:0}#achievement-tabs .tab-title,#badgeos-setting-tabs .tab-title,#credit-tabs .tab-title,#email-tabs .tab-title,#rank-tabs .tab-title,#system-tabs .tab-title{padding:10px;font-size:15px;font-weight:700;border-bottom:1px solid #ccc;background-color:#f6f6f6}#achievement-tabs.ui-tabs-vertical .ui-tabs-nav,#badgeos-setting-tabs.ui-tabs-vertical .ui-tabs-nav,#credit-tabs.ui-tabs-vertical .ui-tabs-nav,#email-tabs.ui-tabs-vertical .ui-tabs-nav,#rank-tabs.ui-tabs-vertical .ui-tabs-nav,#system-tabs.ui-tabs-vertical .ui-tabs-nav{padding:0!important;margin:0!important;border:none!important;-webkit-border-radius:0!important;-moz-border-radius:0!important;border-radius:0!important}#achievement-tabs.ui-tabs-vertical .ui-tabs-nav li a,#badgeos-setting-tabs.ui-tabs-vertical .ui-tabs-nav li a,#credit-tabs.ui-tabs-vertical .ui-tabs-nav li a,#email-tabs.ui-tabs-vertical .ui-tabs-nav li a,#rank-tabs.ui-tabs-vertical .ui-tabs-nav li a,#system-tabs.ui-tabs-vertical .ui-tabs-nav li a{padding:8px 2%!important;width:96%!important}#achievement-tabs.ui-tabs-vertical .ui-tabs-nav li,#badgeos-setting-tabs.ui-tabs-vertical .ui-tabs-nav li,#credit-tabs.ui-tabs-vertical .ui-tabs-nav li,#email-tabs.ui-tabs-vertical .ui-tabs-nav li,#rank-tabs.ui-tabs-vertical .ui-tabs-nav li,#system-tabs.ui-tabs-vertical .ui-tabs-nav li{background-color:#f6f6f6;border:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border-bottom:1px solid #ccc;padding:0;margin-bottom:0}#achievement-tabs.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active,#badgeos-setting-tabs.ui-tabs-nav li.ui-tabs-active,#credit-tabs.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active,#email-tabs.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active,#rank-tabs.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active,#system-tabs.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active{background-color:#fff;border:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border-bottom:1px solid #ccc;padding:0}#achievement-tabs.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active a,#badgeos-setting-tabs.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active a,#credit-tabs.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active a,#email-tabs.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active a,#rank-tabs.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active a,#system-tabs.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active a{color:#000}#achievement-tabs.ui-tabs-vertical .ui-tabs-nav li:focus,#badgeos-setting-tabs.ui-tabs-vertical .ui-tabs-nav li:focus,#credit-tabs.ui-tabs-vertical .ui-tabs-nav li:focus,#email-tabs.ui-tabs-vertical .ui-tabs-nav li:focus,#rank-tabs.ui-tabs-vertical .ui-tabs-nav li:focus,#system-tabs.ui-tabs-vertical .ui-tabs-nav li:focus{border:none!important;outline:0!important;box-shadow:none!important}#achievement-tabs.ui-tabs-vertical .ui-tabs-nav li a:focus,#badgeos-setting-tabs.ui-tabs-vertical .ui-tabs-nav li a:focus,#credit-tabs.ui-tabs-vertical .ui-tabs-nav li a:focus,#email-tabs.ui-tabs-vertical .ui-tabs-nav li a:focus,#rank-tabs.ui-tabs-vertical .ui-tabs-nav li a:focus,#system-tabs.ui-tabs-vertical .ui-tabs-nav li a:focus{border:none!important;outline:0!important;box-shadow:none!important}#achievement_bulk_award,#achievement_bulk_revoke,#badgeos_info,#badgeos_tools_email_achievement_steps,#badgeos_tools_email_achievements,#badgeos_tools_email_general,#badgeos_tools_email_point_awards,#badgeos_tools_email_point_deducts,#badgeos_tools_email_rank_steps,#badgeos_tools_email_ranks,#credit_bulk_award,#credit_bulk_revoke,#php_config,#rank_bulk_award,#rank_bulk_revoke,#server_info,#wordpress_info{background-color:#fff;padding:0!important;border-left:1px solid #ccc}#achievement_bulk_award form,#achievement_bulk_revoke form,#badgeos_tools_email_achievement_steps,#badgeos_tools_email_achievements,#badgeos_tools_email_general,#badgeos_tools_email_point_awards,#badgeos_tools_email_point_deducts,#badgeos_tools_email_rank_steps,#badgeos_tools_email_ranks,#credit_bulk_award form,#credit_bulk_revoke form,#rank_bulk_award form,#rank_bulk_revoke form{padding:20px}#badgeos_info table,#php_config table,#server_info table,#wordpress_info table{padding:20px;width:100%;text-align:left}#badgeos_info table tr:nth-child(even),#php_config table tr:nth-child(even),#server_info table tr:nth-child(even),#wordpress_info table tr:nth-child(even){text-align:left;background:#fff}#badgeos_info table tr:nth-child(odd),#php_config table tr:nth-child(odd),#server_info table tr:nth-child(odd),#wordpress_info table tr:nth-child(odd){text-align:left;background:#f6f6f6}#badgeos_info table tr th,#php_config table tr th,#server_info table tr th,#wordpress_info table tr th{width:35%}#badgeos_info table tr td,#badgeos_info table tr th,#php_config table tr td,#php_config table tr th,#server_info table tr td,#server_info table tr th,#wordpress_info table tr td,#wordpress_info table tr th{padding:10px}#achievement_bulk_award form table,#achievement_bulk_revoke form table,#credit_bulk_award form table,#credit_bulk_revoke form table,#rank_bulk_award form table,#rank_bulk_revoke form table{width:100%}.badgeos-wp_page_badgeos_tools form table tr th{width:35%!important}.badgeos-wp_page_badgeos_tools form table tr td{width:65%!important}.badgeos-wp_page_badgeos_tools form table tr td span input,.badgeos-wp_page_badgeos_tools form table tr td span>span.selection{width:100%!important}.badgeos-wp_page_badgeos_tools form table tr td>input,.badgeos-wp_page_badgeos_tools form table tr td>select{width:80%;padding:20px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;height:45px!important}.badgeos-wp_page_badgeos_tools form table tr td,.badgeos-wp_page_badgeos_tools form table tr th{border-bottom:1pt solid #e5e5e5;padding:20px 0}#achievement-tabs .button,#badgeos-setting-tabs .button,#credit-tabs .button,#email-tabs .button,#rank-tabs .button{margin:20px 0;float:right}#achievement-tabs .tool-hint,#badgeos-setting-tabs .tool-hint,#credit-tabs .tool-hint,#email-tabs .tool-hint,#rank-tabs .tool-hint{display:block;color:#aaa;margin:5px 0}.badgeos-wp_page_badgeos_tools .select2-container .select2-search--inline .select2-search__field{margin-top:12px}#credit_types_to_award,#credit_types_to_revoke{padding:12px;line-height:normal;height:auto}#achievement_bulk_award form table tr td,#achievement_bulk_revoke form table tr th,#badgeos_tools_email_achievement_steps form table tr th,#badgeos_tools_email_achievements form table tr th,#badgeos_tools_email_general form table tr th,#badgeos_tools_email_point_awards form table tr th,#badgeos_tools_email_point_deducts form table tr th,#badgeos_tools_email_rank_steps form table tr th,#badgeos_tools_email_ranks form table tr th,#credit_bulk_award form table tr td,#credit_bulk_award form table tr th,#credit_bulk_revoke form table tr td,#credit_bulk_revoke form table tr th,#rank_bulk_award form table tr th,#rank_bulk_revoke form table tr td{padding-bottom:20px}#achievement_bulk_award form table tr th,#achievement_bulk_revoke form table tr th,#badgeos_tools_email_achievement_steps form table tr th,#badgeos_tools_email_achievements form table tr th,#badgeos_tools_email_general form table tr th,#badgeos_tools_email_point_awards form table tr th,#badgeos_tools_email_point_deducts form table tr th,#badgeos_tools_email_rank_steps form table tr th,#badgeos_tools_email_ranks form table tr th,#credit_bulk_award form table tr th,#credit_bulk_revoke form table tr th,#rank_bulk_award form table tr th,#rank_bulk_revoke form table tr th{vertical-align:top;text-align:left;width:40%}#achievement_bulk_award form table tr td .select2-selection,#achievement_bulk_revoke form table tr td .select2-selection,#badgeos_tools_email_achievement_steps form table tr td .select2-selection,#badgeos_tools_email_achievements form table tr td .select2-selection,#badgeos_tools_email_general form table tr td .select2-selection,#badgeos_tools_email_point_awards form table tr td .select2-selection,#badgeos_tools_email_point_deducts form table tr td .select2-selection,#badgeos_tools_email_rank_steps form table tr td .select2-selection,#badgeos_tools_email_ranks form table tr td .select2-selection,#credit_bulk_award form table tr td .select2-selection,#credit_bulk_revoke form table tr td .select2-selection,#rank_bulk_award form table tr td .select2-selection,#rank_bulk_revoke form table tr td .select2-selection{border:1px solid #ddd;max-width:70%;padding:6px 8px}#badgeos_tools_email_achievement_steps form,#badgeos_tools_email_achievements form,#badgeos_tools_email_general form,#badgeos_tools_email_point_awards form,#badgeos_tools_email_point_deducts form,#badgeos_tools_email_rank_steps form,#badgeos_tools_email_ranks form{padding:20px}#TB_window.badgeos-shortcode-thickbox #TB_ajaxContent{overflow-y:auto!important;overflow-x:hidden}#TB_window.badgeos-shortcode-thickbox #TB_ajaxContent .wrap{padding:10px}#TB_window.badgeos-shortcode-thickbox #TB_ajaxContent .wrap .select2-selection__rendered{border:1px solid #ddd;box-shadow:0 0 5px 0 #ddd}#TB_window.badgeos-shortcode-thickbox #TB_ajaxContent .wrap .badgeos_input:nth-child(even){clear:left}#TB_window.badgeos-shortcode-thickbox #TB_ajaxContent #shortcode_options,#TB_window.badgeos-shortcode-thickbox #TB_ajaxContent #shortcode_options>div{clear:left;width:100%}#ldqie_normal_progress_loader{margin:10px auto}#badgeos_ob_normal_progress_bar{width:50%;margin:10px auto}.ui-progressbar{position:relative}.progress-label{position:absolute;left:43%;top:4px;font-weight:700;text-shadow:1px 1px 0 #fff}.badgeos_settings_license_tab{vertical-align:top;padding:10px}.badgeos_item{box-shadow:0 8px 38px 0 rgba(16,16,16,.07);background:#fff;max-width:30%;margin:auto;padding:15px 20px 0;text-align:center;font-family:inherit;width:27%;margin:20px 22px 0 0;float:left}.badgeos_item button{border:none;outline:0;padding:12px;color:#0073aa;background-color:transparent;text-align:center;cursor:pointer;width:100%;font-size:18px}.badgeos_item button:hover{opacity:.7}.badgeos_assets_info_log_content a{display:none}.badgeos_assets_info_log{display:none;margin:10px}.badgeos_assets_info_log_content{padding:10px;overflow:scroll;width:400px;height:300px}.badgeos_download_asset_success_message{font-size:11px;background-color:green;color:#fff;border-radius:5px;padding:5px;margin:5px}.badgeos_download_asset_failed_message{font-size:11px;background-color:red;color:#fff;border-radius:5px;padding:5px;margin:5px}.badgeos_item .badgeos-item-description{text-align:left;font-weight:300;padding:10px;max-height:60px;height:60px}.badgeos-assets-message-divs{max-height:90px;height:90px;overflow:hidden}.badgeos_item .badgeos-item-button{text-align:center}.badgeos-assets-image{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;max-height:180px;overflow:hidden;height:180px;width:200px;margin-left:auto;margin-right:auto}.badgeos-welcome-container{max-width:calc(100% - 161px);width:100%;margin-left:80px;margin-top:32px}.badgeos-welcome-site-inner{max-width:1290px;margin:0 auto;overflow:hidden}.badgeos_dashboard_heading{display:flex;margin:35px 0;align-items:center}.badgeos_dashboard_heading .badgeos_dashboard_title{display:flex;align-items:baseline}.badgeos_dashboard_heading .badgeos_dashboard_title h1{margin:0 20px;font-size:48px}.badgeos_dashboard_heading .badgeos_dashboard_title span{font-size:22px}.badgeos_dashboard_heading img{width:89px}.badgeos_welcome_addons_list .badgeos_welcome_addons_list_ul{margin:0;padding:0}.badgeos_welcome_addons_list .multiple{list-style-type:none;background:#fff;width:30%;display:inline-block}.badgeos_welcome_addons_list .slick-prev{display:block!important;position:absolute;right:100px!important;top:-27px;left:auto}.badgeos_welcome_addons_list .slick-prev:before{color:#222;font-size:20px;content:"\f053";font-family:fontAwesome}.badgeos_welcome_addons_list .slick-next{display:block!important;position:absolute;right:24px;top:-27px}.badgeos_welcome_addons_list .slick-next:before{color:#222;font-size:20px;content:"\f054";font-family:fontAwesome}.badgeos_welcome_addon img{width:100%}.badgeos_welcome_addon{display:flex;padding:1em;border:1px solid #ccc;min-height:17em;height:17em}.badgeos_welcome_addons_panel{margin-bottom:55px}.badgeos_welcome_on_content{font-family:Arial,Helvetica,sans-serif;padding-left:20px}.badgeos_welcome_on_content .badgeos_add-on_name{color:#ed1f6e;font-size:20px;line-height:1.5}.badgeos_addon_welcome_btn{text-align:center}.badgeos_addon_welcome_btn a{font-family:Open Sans,sans-serif;padding:.5em 1em;font-size:12px;white-space:nowrap;background-color:#f7f7f7;color:#000;border:1px solid #adadad}.badgeos_assets_list .slick-prev{display:block!important;position:absolute;right:100px!important;top:-27px;left:auto}.badgeos_assets_list .slick-prev:before{color:#222;font-size:20px;content:"\f053";font-family:fontAwesome}.badgeos_assets_list .slick-next{display:block!important;position:absolute;right:24px;top:-27px}.badgeos_assets_list .slick-next:before{color:#222;font-size:20px;content:"\f054";font-family:fontAwesome}.badgeos_assets_panel{margin-bottom:55px}.badgeos_assets_list ul{margin:0;padding:0}.badgeos_asset{text-align:center;padding:2em 0;border:1px solid #ccc;background-color:#fff}.badgeos_asset img{width:65%}.badgeos_asset_content{font-family:Arial,Helvetica,sans-serif;padding:20px}.badgeos_asset_content .badgeos_asset_name{font-size:22px;line-height:2.2}.badgeos_asset_desc button{font-family:Open Sans,sans-serif;padding:.5em 2em}.badgeos_quick_links{background:#fff;padding:1em;border:1px solid #000;margin-bottom:55px}.badgeos_quick_links ul{padding:0;margin:0}.badgeos_quick_links ul li{list-style-type:none;line-height:2.2}.badgeos_need_help,.badgeos_please_rate{background:#fff;padding:1em;border:1px solid #000;margin-bottom:55px}.bos-need-help{width:120px}.badgeos_need_help p,.badgeos_please_rate p{font-size:inherit}.badgeos_please_rate{background:#fff;padding:1em;border:1px solid #000;margin-bottom:55px}.badgeos_please_rate p{font-size:inherit}@media only screen and (min-width:180px) and (max-width:759px){.badgeos-welcome-container{max-width:calc(100% - 0px);margin-left:0}.badgeos_welcome_addon{display:block;height:auto}.badgeos_welcome_on_content{margin-top:25px}.badgeos_dashboard_heading{margin-bottom:35px}.badgeos_dashboard_heading .badgeos_dashboard_title{display:block;margin:0 20px}.badgeos_dashboard_heading .badgeos_dashboard_title span{line-height:4;margin:0 20px}}.badgeos_please_rate .badgeos-btn-need-help{width:140px}@media only screen and (min-width:1200px) and (max-width:1300px){.badgeos_welcome_addon .badgeos_add_on_desc p{font-size:11px}.badgeos_welcome_addon{height:17em}}
  • badgeos/trunk/css/badgeos-front.css

    r2687784 r2765251  
    4343*  List view of BadgeOS Achievements List, Earned Achievements List, Rank List,
    4444**/
    45 
     45.badgeos-item-image a img{
     46    max-width: none !important;
     47}
     48
     49.badgeos-points-image img{
     50    max-width: none !important;
     51}
    4652.list .badgeos-list-item {
    4753    clear: both;
     
    172178    width: 30%;
    173179    margin: 20px 2%;
    174     float: left;
     180    /*float: left;*/
    175181    padding: 1%;
    176182    box-shadow: 1px 1px 3px 2px #ccc;
  • badgeos/trunk/css/badgeos-front.min.css

    r2448573 r2765251  
    1 .achievement-template-part{border:#fff 1px solid;border-width:1px;border-style:solid;padding:.6em .6em;margin:5px 0 15px;background-color:#ddd;border-color:#999;color:#000;clear:both}#badgeos-achievements-filter{float:left;margin-bottom:1em}#badgeos-achievements-search,.badgeos-feedback-search{margin-right:5px;margin-bottom:1em;float:right}#achievements_list_load_more,#badgeos-achievements-container,#badgeos-achievements-filters-wrap{display:block;margin:0 auto;clear:both;overflow:hidden}.badgeos_achievement_main_container{margin:50px 0}.achievements_list_search_go_form .achievements_list_search_go{margin-top:5px}#badgeos-achievements-container{border-top:1px dotted #aaa}#badgeos-achievements-filter select{max-width:100%;display:block}.list .badgeos-list-item{clear:both;padding:20px 0;border-bottom:1px dotted #aaa;overflow:hidden;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex}.list .badgeos-list-item .badgeos-item-description,.list .badgeos-list-item .badgeos-item-detail{padding-left:20px}.grid .badgeos-list-item .badgeos-item-image{padding-bottom:30px}.badgeos-no-results{clear:both}.badgeos-item-points{font-weight:700}.badgeos-list-item.user-has-earned .badgeos-item-image{opacity:1}#badgeos-achievements-container .badgeos-item-title{display:inline-block;margin-top:0}#achievements_list_load_more{margin:20px auto}.badgeos-open-close-switch{text-align:right}.badgeos-open-close-switch a{display:block}.badgeos-extras-window{display:none;clear:both}.badgeos-list-item.user-has-earned .badgeos-extras-window li,.badgeos-required-achievements .user-has-earned{text-decoration:line-through}.badgeos-list-item.user-has-earned .badgeos-extras-window li:hover,.badgeos-required-achievements .user-has-earned:hover{text-decoration:none}.show-hide-close:after,.show-hide-open:after{content:'';display:block;overflow:hidden;background:url(../images/arrows.png) top no-repeat;width:22px;height:7px;float:right;margin:.7em 0 0 5px;background-position:0 -14px}.show-hide-close:after{background-position:0 -21px}ul.badgeos-achievement-earners-list{list-style:none;margin:0;padding:0}ul.badgeos-achievement-earners-list li{position:relative;float:left;margin:5px;padding:0}.badgeos_earned_point_main{border:1px solid #e8e8e8;position:relative}.badgeos-user-ranks-main .widget-ranks-listing{list-style:none;margin:0;padding:10px;background:#fff}.badgeos-user-ranks-main .widget-badgeos-item-title{margin-left:1em}.badgeos_earned_points_only td{text-align:center;padding:0}.badgeos_earned_points_only .badgeos_earned_points_widget_image{background-color:#fff}.badgeos_earned_points_only .badgeos_earned_points_widget_image img{margin-left:auto;margin-right:auto}.badgeos_earned_points_only .points_widget_title{background-color:#59adc7;color:#fff}.badgeos_earned_points_only .badgeos-earned-credit{background-color:#fff;color:#59adc7;font-weight:700}.badgeos_earned_point_main .badgeos_earned_point_title{margin:0;color:#000;font-size:1.3em}.badgeos_earned_point_main .badgeos_earned_point_detail{margin:0;font-size:12px}.badgeos_earned_point_main:nth-child(odd){width:30%;margin:20px 2%;float:left;padding:1%;box-shadow:1px 1px 3px 2px #ccc;background-color:#fff}.badgeos_earned_point_main:nth-child(even){width:40%;margin:20px 2%;float:right;padding:1%;box-shadow:1px 1px 3px 2px #ccc;background-color:#fff}#badgeos-achievements-container,#badgeos-earned-achievements-container,#badgeos-earned-ranks-container,#badgeos-list-ranks-container{overflow:hidden}#badgeos-achievements-container .badgeos-arrange-buttons,#badgeos-earned-achievements-container .badgeos-arrange-buttons,#badgeos-earned-ranks-container .badgeos-arrange-buttons,#badgeos-list-ranks-container .badgeos-arrange-buttons{overflow:hidden;margin-bottom:50px}#badgeos-achievements-container ul,#badgeos-earned-achievements-container ul,#badgeos-earned-ranks-container ul,#badgeos-list-ranks-container ul{list-style:none}#badgeos-achievements-container .buttons,#badgeos-earned-achievements-container .buttons,#badgeos-earned-ranks-container .buttons,#badgeos-list-ranks-container .buttons{border:none;outline:0;padding:12px 16px;background-color:#f1f1f1;cursor:pointer;color:#999;float:right}#badgeos-achievements-container .selected,#badgeos-earned-achievements-container .selected,#badgeos-earned-ranks-container .selected,#badgeos-list-ranks-container .selected{background-color:#999;color:#fff;float:right}#badgeos-achievements-container .list>li,#badgeos-earned-achievements-container .list>li,#badgeos-earned-ranks-container .list>li,#badgeos-list-ranks-container .list>li{width:100%;border-bottom:1px dotted #ccc;margin-bottom:10px;padding-bottom:10px}#badgeos-achievements-container .grid>li,#badgeos-earned-achievements-container .grid>li,#badgeos-earned-ranks-container .grid>li,#badgeos-list-ranks-container .grid>li{float:left;width:45%;border:1px dotted #ccc;padding:20px;margin:1px auto}#badgeos-achievements-container .grid>li:nth-child(odd),#badgeos-earned-achievements-container .grid>li:nth-child(odd),#badgeos-earned-ranks-container .grid>li:nth-child(odd),#badgeos-list-ranks-container .grid>li:nth-child(odd){clear:both}.evidence_main{display:block;width:100%!important;height:auto;overflow:hidden}.left_col{float:left;width:28%;height:auto;overflow:hidden;padding:3px 3px;min-height:36px}.right_col{float:left;width:68%;height:auto;overflow:hidden;padding:3px 3px;min-height:36px}.right_col .title{display:block;font-family:sans-serif;font-size:20px;color:#3b3c3d;padding:5px}.right_col .badgeos_user_name{display:block;font-size:12px;color:#3b3c3d;padding:5px}.right_col .badgeos_issuer_name{display:block;font-size:12px;color:#3b3c3d;padding:5px}.right_col .badgeos_issue_date{display:block;font-size:12px;color:#3b3c3d;padding:5px}.right_col .badgeos_expiry_date{display:block;font-size:12px;color:#3b3c3d;padding:5px}.right_col p{display:block;font-size:13px;color:#3b3c3d;padding:5px}.right_col .evidence{display:block;font-size:12px;color:#3b3c3d;padding:5px}.verify-open-badge{padding:5px 15px!important}.verify-open-badge{border:1px solid!important;margin:0 auto!important}#badgeos-ob-verification-res-list{list-style:none;color:red;font-family:sans-serif;font-size:15px;margin:auto}#badgeos-ob-verification-res-list li.success{color:green}.badgeos-ob-finalsuccess{color:green}#badgeos-ob-verification-res-list li.error{color:red}#badgeos-ob-verification-res-list li.success:before{content:"\2713\0020";width:32px;font-size:25px;font-weight:700;color:green}#badgeos-ob-verification-res-list li.error:before{content:"\00d7\0020";width:32px;font-size:32px;font-weight:700;color:red}@media screen and (min-width:180px) and (max-width:542px){#badgeos-achievements-container .grid li,#badgeos-earned-achievements-container .grid li,#badgeos-earned-ranks-container .grid li,#badgeos-list-ranks-container .grid li{width:100%}}.badgeos_verification_modal_popup{position:fixed;visibility:hidden;display:none;left:35%;top:5%;width:100%;max-width:480px;height:auto;background:#f8f8f8;margin:0 auto;overflow:hidden;line-height:1.2;font-family:Open Sans,sans-serif;border:2px solid #ccc;z-index:999999}header.badgeos_verification_popup_header{position:relative;background-color:#fff;border-bottom:3px solid #000;color:#000;padding:10px}header.badgeos_verification_popup_header h2{margin:.3em;color:#21208d}header.badgeos_verification_popup_header .controls{float:right;position:relative}.badgeos_verification_close{right:25px;top:10px;width:32px;height:32px;opacity:1;background:#fff}.badgeos_verification_close:hover{opacity:1}.badgeos_verification_close:after,.badgeos_verification_close:before{right:7px;content:'';height:21px;width:2px;background-color:#333;top:-31px;position:absolute}.badgeos_verification_close:before{transform:rotate(45deg)}.badgeos_verification_close:after{transform:rotate(-45deg)}.badgeos_verification_modal_panel{background-color:#fff;height:20em;overflow-y:scroll;margin:.3em}.badgeos_modal_badge{padding:.3em;margin:1em;clear:both;overflow:hidden}.badgeos_verification_modal_panel h1{margin-top:0}.badgeos_verification_checkbox{float:left;margin-right:23px}.badgeos_verification_checkbox i.fa-check{font-family:FontAwesome;color:green}.badgeos_verification_checkbox i.fa-times{font-family:FontAwesome;color:red;font-style:normal}.badgeos_verification_badge_title{border-bottom:2px solid #ccc;padding-bottom:35px}.badgeos_verification_badge_title .badgeos_verified{font-weight:800}.badgeos_verification_modal_panel::-webkit-scrollbar{width:10px}.badgeos_verification_modal_panel::-webkit-scrollbar-track{background:#f1f1f1}.badgeos_verification_modal_panel::-webkit-scrollbar-thumb{background:#888;border-radius:50px}.badgeos_verification_modal_panel::-webkit-scrollbar-thumb:hover{background:#555;border-radius:50px}@media only screen and (min-width:461px) and (max-width:760px){.badgeos_verification_modal_panel{height:17em!important}.badgeos_modal_badge .badge_desc{width:65%!important}}@media only screen and (min-width:180px) and (max-width:460px){.badgeos_verification_modal_panel{height:19em}.badgeos_modal_badge .badge_desc{width:56%!important}.badgeos_modal_badge .badge_desc .badge_links a{font-size:10px}.badgeos_modal_badge .badge_desc .badge_social_share_buttons{float:left}.badgeos_modal_badge .badge_desc .badge_social_share_buttons ul{margin:18px 0 0;padding:0}}
     1.achievement-template-part{border:#fff 1px solid;border-width:1px;border-style:solid;padding:.6em .6em;margin:5px 0 15px;background-color:#ddd;border-color:#999;color:#000;clear:both}#badgeos-achievements-filter{float:left;margin-bottom:1em}#badgeos-achievements-search,.badgeos-feedback-search{margin-right:5px;margin-bottom:1em;float:right}#achievements_list_load_more,#badgeos-achievements-container,#badgeos-achievements-filters-wrap{display:block;margin:0 auto;clear:both;overflow:hidden}.badgeos_achievement_main_container{margin:50px 0}.achievements_list_search_go_form .achievements_list_search_go{margin-top:5px}#badgeos-achievements-container{border-top:1px dotted #aaa}#badgeos-achievements-filter select{max-width:100%;display:block}.badgeos-item-image a img{max-width:none!important}.badgeos-points-image img{max-width:none!important}.list .badgeos-list-item{clear:both;padding:20px 0;border-bottom:1px dotted #aaa;overflow:hidden;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex}.list .badgeos-list-item .badgeos-item-description,.list .badgeos-list-item .badgeos-item-detail{padding-left:20px}.grid .badgeos-list-item .badgeos-item-image{padding-bottom:30px}.badgeos-no-results{clear:both}.badgeos-item-points{font-weight:700}.badgeos-list-item.user-has-earned .badgeos-item-image{opacity:1}#badgeos-achievements-container .badgeos-item-title{display:inline-block;margin-top:0}#achievements_list_load_more{margin:20px auto}.badgeos-open-close-switch{text-align:right}.badgeos-open-close-switch a{display:block}.badgeos-extras-window{display:none;clear:both}.badgeos-list-item.user-has-earned .badgeos-extras-window li,.badgeos-required-achievements .user-has-earned{text-decoration:line-through}.badgeos-list-item.user-has-earned .badgeos-extras-window li:hover,.badgeos-required-achievements .user-has-earned:hover{text-decoration:none}.show-hide-close:after,.show-hide-open:after{content:'';display:block;overflow:hidden;background:url('../images/arrows.png') top no-repeat;width:22px;height:7px;float:right;margin:.7em 0 0 5px;background-position:0 -14px}.show-hide-close:after{background-position:0 -21px}ul.badgeos-achievement-earners-list{list-style:none;margin:0;padding:0}ul.badgeos-achievement-earners-list li{position:relative;float:left;margin:5px;padding:0}.badgeos_earned_point_main{border:1px solid #e8e8e8;position:relative}.badgeos-user-ranks-main .widget-ranks-listing{list-style:none;margin:0;padding:10px;background:#fff}.badgeos-user-ranks-main .widget-badgeos-item-title{margin-left:1em}.badgeos_earned_points_only td{text-align:center;padding:0}.badgeos_earned_points_only .badgeos_earned_points_widget_image{background-color:#fff}.badgeos_earned_points_only .badgeos_earned_points_widget_image img{margin-left:auto;margin-right:auto}.badgeos_earned_points_only .points_widget_title{background-color:#59adc7;color:#fff}.badgeos_earned_points_only .badgeos-earned-credit{background-color:#fff;color:#59adc7;font-weight:700}.badgeos_earned_point_main .badgeos_earned_point_title{margin:0;color:#000;font-size:1.3em}.badgeos_earned_point_main .badgeos_earned_point_detail{margin:0;font-size:12px}.badgeos_earned_point_main:nth-child(odd){width:30%;margin:20px 2%;padding:1%;box-shadow:1px 1px 3px 2px #ccc;background-color:#fff}.badgeos_earned_point_main:nth-child(even){width:40%;margin:20px 2%;float:right;padding:1%;box-shadow:1px 1px 3px 2px #ccc;background-color:#fff}#badgeos-achievements-container,#badgeos-earned-achievements-container,#badgeos-earned-ranks-container,#badgeos-list-ranks-container{overflow:hidden}#badgeos-achievements-container .badgeos-arrange-buttons,#badgeos-earned-achievements-container .badgeos-arrange-buttons,#badgeos-earned-ranks-container .badgeos-arrange-buttons,#badgeos-list-ranks-container .badgeos-arrange-buttons{overflow:hidden;margin-bottom:50px}#badgeos-achievements-container ul,#badgeos-earned-achievements-container ul,#badgeos-earned-ranks-container ul,#badgeos-list-ranks-container ul{list-style:none}#badgeos-achievements-container .buttons,#badgeos-earned-achievements-container .buttons,#badgeos-earned-ranks-container .buttons,#badgeos-list-ranks-container .buttons{border:none;outline:0;padding:12px 16px;background-color:#f1f1f1;cursor:pointer;color:#999;float:right}#badgeos-achievements-container .selected,#badgeos-earned-achievements-container .selected,#badgeos-earned-ranks-container .selected,#badgeos-list-ranks-container .selected{background-color:#999;color:#fff;float:right}#badgeos-achievements-container .list>li,#badgeos-earned-achievements-container .list>li,#badgeos-earned-ranks-container .list>li,#badgeos-list-ranks-container .list>li{width:100%;border-bottom:1px dotted #ccc;margin-bottom:10px;padding-bottom:10px}#badgeos-achievements-container .grid>li,#badgeos-earned-achievements-container .grid>li,#badgeos-earned-ranks-container .grid>li,#badgeos-list-ranks-container .grid>li{float:left;width:45%;border:1px dotted #ccc;padding:20px;margin:1px auto}#badgeos-achievements-container .grid>li:nth-child(odd),#badgeos-earned-achievements-container .grid>li:nth-child(odd),#badgeos-earned-ranks-container .grid>li:nth-child(odd),#badgeos-list-ranks-container .grid>li:nth-child(odd){clear:both}.evidence_main{display:block;width:100%!important;height:auto;overflow:hidden}.left_col{float:left;width:28%;height:auto;overflow:hidden;padding:3px 3px;min-height:36px}.right_col{float:left;width:68%;height:auto;overflow:hidden;padding:3px 3px;min-height:36px}.right_col .title{display:block;font-family:sans-serif;font-size:20px;color:#3b3c3d;padding:5px}.right_col .badgeos_user_name{display:block;font-size:12px;color:#3b3c3d;padding:5px}.right_col .badgeos_issuer_name{display:block;font-size:12px;color:#3b3c3d;padding:5px}.right_col .badgeos_issue_date{display:block;font-size:12px;color:#3b3c3d;padding:5px}.right_col .badgeos_expiry_date{display:block;font-size:12px;color:#3b3c3d;padding:5px}.right_col p{display:block;font-size:13px;color:#3b3c3d;padding:5px}.right_col .evidence{display:block;font-size:12px;color:#3b3c3d;padding:5px}.verify-open-badge{padding:5px 15px!important}.verify-open-badge{border:1px solid!important;margin:0 auto!important}#badgeos-ob-verification-res-list{list-style:none;color:red;font-family:sans-serif;font-size:15px;margin:auto}#badgeos-ob-verification-res-list li.success{color:green}.badgeos-ob-finalsuccess{color:green}#badgeos-ob-verification-res-list li.error{color:red}#badgeos-ob-verification-res-list li.success:before{content:"\2713\0020";width:32px;font-size:25px;font-weight:700;color:green}#badgeos-ob-verification-res-list li.error:before{content:"\00d7\0020";width:32px;font-size:32px;font-weight:700;color:red}@media screen and (min-width:180px) and (max-width:542px){#badgeos-achievements-container .grid li,#badgeos-earned-achievements-container .grid li,#badgeos-earned-ranks-container .grid li,#badgeos-list-ranks-container .grid li{width:100%}}.badgeos_verification_modal_popup{position:fixed;visibility:hidden;display:none;left:35%;top:5%;width:100%;max-width:480px;height:auto;background:#f8f8f8;margin:0 auto;overflow:hidden;line-height:1.2;font-family:Open Sans,sans-serif;border:2px solid #ccc;z-index:999999}header.badgeos_verification_popup_header{position:relative;background-color:#fff;border-bottom:3px solid #000;color:#000;padding:10px}header.badgeos_verification_popup_header h2{margin:.3em;color:#21208d}header.badgeos_verification_popup_header .controls{float:right;position:relative}.badgeos_verification_close{right:25px;top:10px;width:32px;height:32px;opacity:1;background:#fff}.badgeos_verification_close:hover{opacity:1}.badgeos_verification_close:after,.badgeos_verification_close:before{right:7px;content:'';height:21px;width:2px;background-color:#333;top:-31px;position:absolute}.badgeos_verification_close:before{transform:rotate(45deg)}.badgeos_verification_close:after{transform:rotate(-45deg)}.badgeos_verification_modal_panel{background-color:#fff;height:20em;overflow-y:scroll;margin:.3em}.badgeos_modal_badge{padding:.3em;margin:1em;clear:both;overflow:hidden}.badgeos_verification_modal_panel h1{margin-top:0}.badgeos_verification_checkbox{float:left;margin-right:23px}.badgeos_verification_checkbox i.fa-check{font-family:FontAwesome;color:green}.badgeos_verification_checkbox i.fa-times{font-family:FontAwesome;color:red;font-style:normal}.badgeos_verification_badge_title{border-bottom:2px solid #ccc;padding-bottom:35px}.badgeos_verification_badge_title .badgeos_verified{font-weight:800}.badgeos_verification_modal_panel::-webkit-scrollbar{width:10px}.badgeos_verification_modal_panel::-webkit-scrollbar-track{background:#f1f1f1}.badgeos_verification_modal_panel::-webkit-scrollbar-thumb{background:#888;border-radius:50px}.badgeos_verification_modal_panel::-webkit-scrollbar-thumb:hover{background:#555;border-radius:50px}.badgeos-last-earned-checkmark{color:green}@media only screen and (min-width:461px) and (max-width:760px){.badgeos_verification_modal_panel{height:17em!important}.badgeos_modal_badge .badge_desc{width:65%!important}}@media only screen and (min-width:180px) and (max-width:460px){.badgeos_verification_modal_panel{height:19em}.badgeos_modal_badge .badge_desc{width:56%!important}.badgeos_modal_badge .badge_desc .badge_links a{font-size:10px}.badgeos_modal_badge .badge_desc .badge_social_share_buttons{float:left}.badgeos_modal_badge .badge_desc .badge_social_share_buttons ul{margin:18px 0 0;padding:0}}
  • badgeos/trunk/includes/achievement-upgrade.php

    r2384705 r2765251  
    77 */
    88function badgeos_migrate_fields_points_to_point_types_callback() {
    9     $action = ( isset( $_POST['action'] ) ? $_POST['action'] : '' );
     9    $action = isset( $_POST['action'] ) ? sanitize_text_field( $_POST['action'] ) : '' ;
    1010    if( $action !== 'badgeos_migrate_fields_points_to_point_types' &&  $action !== 'badgeos_migrate_fields_points_to_point_types' ) {
    1111        exit;
  • badgeos/trunk/includes/admin-settings.php

    r2548255 r2765251  
    199199    wp_enqueue_script( 'badgeos-admin-tools-js' );
    200200    $licensed_addons = apply_filters( 'badgeos_licensed_addons', array() );
    201     $setting_page_tab = isset( $_GET['bos_s_tab'] ) ? $_GET['bos_s_tab'] : 'general';
     201    $setting_page_tab = isset( $_GET['bos_s_tab'] ) ? sanitize_text_field($_GET['bos_s_tab']) : 'general';
    202202    if( !isset( $setting_page_tab ) || empty( $setting_page_tab ) ) {
    203203        $setting_page_tab = 'general';
     
    390390        (
    391391            ( isset( $_GET['post_type'] ) && in_array( $_GET['post_type'], badgeos_get_achievement_types_slugs() ) )
    392             || ( isset( $_GET['post'] ) && badgeos_is_achievement( $_GET['post'] ) )
     392            || ( isset( $_GET['post'] ) && badgeos_is_achievement( sanitize_text_field($_GET['post']) ) )
    393393        ) && 'Featured Image' == $string
    394394
     
    398398        (
    399399            ( isset( $_GET['post_type'] ) && $badgeos_settings['achievement_main_post_type'] == $_GET['post_type'] )
    400             || ( isset( $_GET['post'] ) && $badgeos_settings['achievement_main_post_type'] == badgeos_utilities::get_post_type( $_GET['post'] ) )
     400            || ( isset( $_GET['post'] ) && $badgeos_settings['achievement_main_post_type'] == badgeos_utilities::get_post_type( sanitize_text_field($_GET['post'] )) )
    401401        ) && 'Featured Image' == $string
    402402    )
  • badgeos/trunk/includes/admin-tools.php

    r2687784 r2765251  
    2323    public function __construct() {
    2424
    25         $this->page_tab = isset( $_GET['tab'] ) ? $_GET['tab'] : 'achievement_tools';
     25        $this->page_tab = isset( $_GET['tab'] ) ? sanitize_text_field( $_GET['tab'] ) : 'achievement_tools';
    2626        add_action( 'admin_menu', [ $this, 'add_tool_page' ] );
    2727        add_action( 'admin_init', [ $this, 'badgeos_award_reward_achievements' ] );
     
    114114           
    115115            if( isset( $_POST['badgeos_tools_email_general'] ) ) {
    116                 $tools_data = $_POST['badgeos_tools'];
     116                $tools_data = sanitize_text_field( $_POST['badgeos_tools'] );
    117117               
    118118                if( isset( $_FILES['badgeos_tools_email_general_logo'] ) ) {
     
    146146           
    147147            if( isset( $_POST['badgeos_tools_email_achievement'] ) ) {
    148                 $tools_data = $_POST['badgeos_tools'];
     148                $tools_data = sanitize_text_field( $_POST['badgeos_tools'] );
    149149                $email_disable_earned_achievement_email = 'no';
    150150                if( isset( $tools_data['email_disable_earned_achievement_email'] ) ) {
     
    167167           
    168168            if( isset( $_POST['badgeos_tools_email_achievement_steps'] ) ) {
    169                 $tools_data = $_POST['badgeos_tools'];
     169                $tools_data = sanitize_text_field( $_POST['badgeos_tools'] );
    170170                $email_disable_achievement_steps_email = 'no';
    171171                if( isset( $tools_data['email_disable_achievement_steps_email'] ) ) {
     
    188188           
    189189            if( isset( $_POST['badgeos_tools_email_ranks'] ) ) {
    190                 $tools_data = $_POST['badgeos_tools'];
     190                $tools_data = sanitize_text_field( $_POST['badgeos_tools'] );
    191191                $email_disable_ranks_email = 'no';
    192192                if( isset( $tools_data['email_disable_ranks_email'] ) ) {
     
    208208           
    209209            if( isset( $_POST['badgeos_tools_email_rank_steps'] ) ) {
    210                 $tools_data = $_POST['badgeos_tools'];
     210                $tools_data = sanitize_text_field( $_POST['badgeos_tools'] );
    211211                $email_disable_rank_steps_email = 'no';
    212212                if( isset( $tools_data['email_disable_rank_steps_email'] ) ) {
     
    228228           
    229229            if( isset( $_POST['badgeos_tools_email_point_awards'] ) ) {
    230                 $tools_data = $_POST['badgeos_tools'];
     230                $tools_data = sanitize_text_field( $_POST['badgeos_tools'] );
    231231                $email_disable_point_awards_email = 'no';
    232232                if( isset( $tools_data['email_disable_point_awards_email'] ) ) {
     
    247247           
    248248            if( isset( $_POST['badgeos_tools_email_point_deducts'] ) ) {
    249                 $tools_data = $_POST['badgeos_tools'];
     249                $tools_data = sanitize_text_field( $_POST['badgeos_tools'] );
    250250                $email_disable_point_deducts_email = 'no';
    251251                if( isset( $tools_data['email_disable_point_deducts_email'] ) ) {
     
    318318            if( isset( $_POST['action'] ) && $_POST['action'] == 'award_bulk_achievement' ) {
    319319
    320                 $achievement_ids_to_award = ( isset( $_POST['badgeos_tools']['award_achievement_types'] ) ? $_POST['badgeos_tools']['award_achievement_types'] : '' );
     320                $achievement_ids_to_award = ( isset( $_POST['badgeos_tools']['award_achievement_types'] ) ? array_map( 'sanitize_text_field', $_POST['badgeos_tools']['award_achievement_types'] ) : '' );
    321321
    322322                if( ! empty( $achievement_ids_to_award ) ){
    323323                    $award_achievements_to_all_users = ( ( isset( $_POST['badgeos_tools']['award_all_users'] ) &&
    324                         $_POST['badgeos_tools']['award_all_users'] == 'on' ) ? $_POST['badgeos_tools']['award_all_users'] : '' );
     324                        $_POST['badgeos_tools']['award_all_users'] == 'on' ) ? sanitize_text_field( $_POST['badgeos_tools']['award_all_users'] ): '' );
    325325                    foreach( $achievement_ids_to_award as $achievement_id ) {
    326326                        $achievement_object = badgeos_build_achievement_object( $achievement_id );
     
    332332                            }
    333333                        } else {
    334                             $users_to_award = ( isset( $_POST['badgeos_tools']['award_users'] ) ? $_POST['badgeos_tools']['award_users'] : '' );
     334                            $users_to_award = ( isset( $_POST['badgeos_tools']['award_users'] ) ? array_map( 'sanitize_text_field', $_POST['badgeos_tools']['award_users'] ): '' );
    335335                        }
    336336 
     
    350350            if( isset( $_POST['action'] ) && $_POST['action'] == 'revoke_bulk_achievement' ) {
    351351
    352                 $achievement_ids_to_revoke = ( isset( $_POST['badgeos_tools']['revoke_achievement_types'] ) ? $_POST['badgeos_tools']['revoke_achievement_types'] : '' );
     352                $achievement_ids_to_revoke = ( isset( $_POST['badgeos_tools']['revoke_achievement_types'] ) ? array_map( 'sanitize_text_field', $_POST['badgeos_tools']['revoke_achievement_types'] ): '' );
    353353
    354354                if( ! empty( $achievement_ids_to_revoke ) ){
    355355                    $revoke_achievements_to_all_users = ( ( isset( $_POST['badgeos_tools']['revoke_all_users'] ) &&
    356                         $_POST['badgeos_tools']['revoke_all_users'] == 'on' ) ? $_POST['badgeos_tools']['revoke_all_users'] : '' );
     356                        $_POST['badgeos_tools']['revoke_all_users'] == 'on' ) ? sanitize_text_field( $_POST['badgeos_tools']['revoke_all_users'] ) : '' );
    357357                    foreach( $achievement_ids_to_revoke as $achievement_id ) {
    358358                        $users_to_revoke = array();
     
    363363                            }
    364364                        } else {
    365                             $users_to_revoke = ( isset( $_POST['badgeos_tools']['revoke_users'] ) ? $_POST['badgeos_tools']['revoke_users'] : '' );
     365                            $users_to_revoke = ( isset( $_POST['badgeos_tools']['revoke_users'] ) ? array_map( 'sanitize_text_field', $_POST['badgeos_tools']['revoke_users'] ): '' );
    366366                        }
    367367
     
    408408                                                $table_name = $wpdb->prefix . "badgeos_achievements";
    409409                                                if($wpdb->get_var("show tables like '$table_name'") == $table_name) {
    410                                                     $where = " where user_id='".intval($user_id)."' and entry_id = '".intval($item->entry_id)."'";
    411                                                     $wpdb->get_results('delete from '.$wpdb->prefix.'badgeos_achievements '.$where.' limit 1' );
     410                                                    $where = " where user_id={$user_id} and entry_id = {$item->entry_id}";
     411                                                    $wpdb->get_results('delete from '.$wpdb->prefix.'badgeos_achievements {$where} limit 1' );
    412412                                                }
    413413                                                badgeos_decrement_user_trigger_count( $user_id, $child->ID, $del_ach_id );
     
    467467            if( isset( $_POST['action'] ) && $_POST['action'] == 'award_credits_in_bulk' ) {
    468468
    469                 $credit_type_to_award = ( isset( $_POST['badgeos_tools']['award_credit_type'] ) ? $_POST['badgeos_tools']['award_credit_type'] : '' );
    470                 $credit_amount = ( isset( $_POST['badgeos_tools']['credit_amount'] ) ? $_POST['badgeos_tools']['credit_amount'] : 0 );
     469                $credit_type_to_award = ( isset( $_POST['badgeos_tools']['award_credit_type'] ) ? sanitize_text_field($_POST['badgeos_tools']['award_credit_type'] ): '' );
     470                $credit_amount = ( isset( $_POST['badgeos_tools']['credit_amount'] ) ? sanitize_text_field($_POST['badgeos_tools']['credit_amount'] ): 0 );
    471471
    472472                if( ! empty( $credit_type_to_award ) && $credit_amount > 0 ) {
    473                     $award_credits_to_all_users = ( ( isset( $_POST['badgeos_tools']['award_all_users'] ) && $_POST['badgeos_tools']['award_all_users'] == 'on' ) ? $_POST['badgeos_tools']['award_all_users'] : '' );
     473                    $award_credits_to_all_users = ( ( isset( $_POST['badgeos_tools']['award_all_users'] ) && $_POST['badgeos_tools']['award_all_users'] == 'on' ) ? sanitize_text_field($_POST['badgeos_tools']['award_all_users']) : '' );
    474474                    $users_to_award = array();
    475475                    if( 'on' == $award_credits_to_all_users ) {
     
    479479                        }
    480480                    } else {
    481                         $users_to_award = ( isset( $_POST['badgeos_tools']['award_users'] ) ? $_POST['badgeos_tools']['award_users'] : '' );
     481                        $users_to_award = ( isset( $_POST['badgeos_tools']['award_users'] ) ? array_map( 'sanitize_text_field', $_POST['badgeos_tools']['award_users'] ): '' );
    482482                    }
    483483                    foreach( $users_to_award as $user_id ) {
     
    494494             */
    495495            if( isset( $_POST['action'] ) && $_POST['action'] == 'revoke_credits_in_bulk' ) {
    496                 $credit_type_to_revoke = ( isset( $_POST['badgeos_tools']['revoke_credit_type'] ) ? $_POST['badgeos_tools']['revoke_credit_type'] : '' );
    497                 $credit_amount = ( isset( $_POST['badgeos_tools']['credit_amount'] ) ? $_POST['badgeos_tools']['credit_amount'] : 0 );
     496                $credit_type_to_revoke = ( isset( $_POST['badgeos_tools']['revoke_credit_type'] ) ? sanitize_text_field($_POST['badgeos_tools']['revoke_credit_type'] ): '' );
     497                $credit_amount = ( isset( $_POST['badgeos_tools']['credit_amount'] ) ? sanitize_text_field($_POST['badgeos_tools']['credit_amount']) : 0 );
    498498
    499499                if( ! empty( $credit_type_to_revoke ) && ( int ) $credit_amount ) {
    500500                    $revoke_credits_to_all_users = ( ( isset( $_POST['badgeos_tools']['revoke_all_users'] ) &&
    501                         $_POST['badgeos_tools']['revoke_all_users'] == 'on' ) ? $_POST['badgeos_tools']['revoke_all_users'] : '' );
     501                        $_POST['badgeos_tools']['revoke_all_users'] == 'on' ) ? sanitize_text_field( $_POST['badgeos_tools']['revoke_all_users'] ): '' );
    502502                    $users_to_revoke = array();
    503503                    if( 'on' == $revoke_credits_to_all_users ) {
     
    507507                        }
    508508                    } else {
    509                         $users_to_revoke = ( isset( $_POST['badgeos_tools']['revoke_users'] ) ? $_POST['badgeos_tools']['revoke_users'] : '' );
     509                        $users_to_revoke = ( isset( $_POST['badgeos_tools']['revoke_users'] ) ? array_map( 'sanitize_text_field', $_POST['badgeos_tools']['revoke_users'] ): '' );
    510510                    }
    511511
     
    542542            if( isset( $_POST['action'] ) && $_POST['action'] == 'award_bulk_ranks' ) {
    543543
    544                 $rank_ids_to_award = ( isset( $_POST['badgeos_tools']['award_rank_types'] ) ? $_POST['badgeos_tools']['award_rank_types'] : '' );
     544                $rank_ids_to_award = ( isset( $_POST['badgeos_tools']['award_rank_types'] ) ? array_map( 'sanitize_text_field', $_POST['badgeos_tools']['award_rank_types'] ): '' );
    545545
    546546                if( ! empty( $rank_ids_to_award ) ){
    547547                    $award_ranks_to_all_users = ( ( isset( $_POST['badgeos_tools']['award_all_users'] ) &&
    548                         $_POST['badgeos_tools']['award_all_users'] == 'on' ) ? $_POST['badgeos_tools']['award_all_users'] : '' );
     548                        $_POST['badgeos_tools']['award_all_users'] == 'on' ) ? sanitize_text_field($_POST['badgeos_tools']['award_all_users'] ): '' );
    549549
    550550                    foreach( $rank_ids_to_award as $rank_id ) {
     
    556556                            }
    557557                        } else {
    558                             $users_to_award = ( isset( $_POST['badgeos_tools']['award_users'] ) ? $_POST['badgeos_tools']['award_users'] : '' );
     558                            $users_to_award = ( isset( $_POST['badgeos_tools']['award_users'] ) ? array_map( 'sanitize_text_field', $_POST['badgeos_tools']['award_users'] ): '' );
    559559                        }
    560560
     
    580580            if( isset( $_POST['action'] ) && $_POST['action'] == 'revoke_bulk_ranks' ) {
    581581
    582                 $rank_ids_to_revoke = ( isset( $_POST['badgeos_tools']['revoke_rank_types'] ) ? $_POST['badgeos_tools']['revoke_rank_types'] : '' );
     582                $rank_ids_to_revoke = ( isset( $_POST['badgeos_tools']['revoke_rank_types'] ) ? array_map( 'sanitize_text_field', $_POST['badgeos_tools']['revoke_rank_types']) : '' );
    583583
    584584                if( ! empty( $rank_ids_to_revoke ) ){
    585585                    $revoke_rank_to_all_users = ( ( isset( $_POST['badgeos_tools']['revoke_all_users'] ) &&
    586                         $_POST['badgeos_tools']['revoke_all_users'] == 'on' ) ? $_POST['badgeos_tools']['revoke_all_users'] : '' );
     586                        $_POST['badgeos_tools']['revoke_all_users'] == 'on' ) ? sanitize_text_field( $_POST['badgeos_tools']['revoke_all_users'] ): '' );
    587587
    588588                    foreach( $rank_ids_to_revoke as $rank_id ) {
     
    594594                            }
    595595                        } else {
    596                             $users_to_revoke = ( isset( $_POST['badgeos_tools']['revoke_users'] ) ? $_POST['badgeos_tools']['revoke_users'] : '' );
     596                            $users_to_revoke = ( isset( $_POST['badgeos_tools']['revoke_users'] ) ? sanitize_text_field( $_POST['badgeos_tools']['revoke_users'] ): '' );
    597597                        }
    598598
  • badgeos/trunk/includes/ajax-functions.php

    r2687784 r2765251  
    2626foreach ( $badgeos_ajax_actions as $action ) {
    2727    add_action( 'wp_ajax_' . $action, 'badgeos_ajax_' . str_replace( '-', '_', $action ), 1 );
    28     add_action( 'wp_ajax_nopriv_' . $action, 'badgeos_ajax_' . str_replace( '-', '_', $action ), 1 );
     28    // add_action( 'wp_ajax_nopriv_' . $action, 'badgeos_ajax_' . str_replace( '-', '_', $action ), 1 );
    2929}
    3030
     
    3636function badgeos_ajax_get_achievements_award_list() {
    3737
     38    // Check for nonce security     
     39    if ( isset( $_REQUEST['nonce'] ) && ! wp_verify_nonce( $_REQUEST['nonce'], 'bos-security' ) ) {
     40        wp_send_json_error( 'Request blocked' );
     41    }
     42
    3843    // If no query was sent, die here
    3944    if ( ! isset( $_REQUEST['q'] ) ) {
     
    4752    $user_id            = sanitize_text_field( $_REQUEST['user_id'] );
    4853    $q                  = sanitize_text_field( $_REQUEST['q'] );
    49 
    50     $sql = "SELECT entry_id as id, CONCAT(achievement_title, ' : ', entry_id) as label, entry_id as value FROM ".$wpdb->prefix."badgeos_achievements where post_type!='".$badgeos_settings['achievement_step_post_type']."'";
     54    $table_name         = $wpdb->prefix . 'badgeos_achievements';
     55
     56    $sql = "SELECT entry_id as id, CONCAT(achievement_title, ' : ', entry_id) as label, entry_id as value FROM {$table_name}
     57    WHERE post_type != '{$badgeos_settings['achievement_step_post_type']}'";
    5158
    5259    // Build our query
    5360    if ( !empty( $q ) ) {
    54         $sql .= " and achievement_title LIKE '%". $q."%'";
     61        $sql .= " and achievement_title LIKE '%{$q}%'";
    5562    }
    5663   
    5764    // Build our query
    5865    if ( !empty( $achievement_id ) ) {
    59         $sql .= " and ID = '". $achievement_id."'";
     66        $sql .= " and ID = '{$achievement_id}'";
    6067    }
    6168     
    6269    // Build our query
    6370    if ( ! empty( $user_id ) ) {
    64         $sql .= " and user_id = '". $user_id."'";
    65     }
    66 
     71        $sql .= " and user_id = '{$user_id}'";
     72    }
     73
     74   
    6775    // Fetch our results (store as associative array)
    68     $results = $wpdb->get_results( $sql." limit 100 ", 'ARRAY_A' );
     76    $results = $wpdb->get_results( $sql, 'ARRAY_A' );
    6977
    7078    // Return our results
     
    7987 */
    8088function badgeos_ajax_get_ranks_list() {
    81     global $user_ID, $blog_id, $wpdb;
     89   
     90
     91    // Check for nonce security     
     92    if ( isset( $_REQUEST['nonce'] ) && ! wp_verify_nonce( $_REQUEST['nonce'], 'bos-security' ) ) {
     93        wp_send_json_error( 'Request blocked' );
     94    }
     95
     96    global $blog_id, $wpdb;
    8297
    8398    $badgeos_settings = ( $exists = badgeos_utilities::get_option( 'badgeos_settings' ) ) ? $exists : array();
     
    85100   
    86101    // Setup our AJAX query vars
    87     $type               = isset( $_REQUEST['types'] )      ? $_REQUEST['types']      : false;
    88     $limit              = isset( $_REQUEST['limit'] )      ? $_REQUEST['limit']      : false;
    89     $offset             = isset( $_REQUEST['offset'] )     ? $_REQUEST['offset']     : false;
    90     $count              = isset( $_REQUEST['count'] )      ? $_REQUEST['count']      : false;
    91     $search             = isset( $_REQUEST['search'] )     ? $_REQUEST['search']     : false;
    92     $user_id            = isset( $_REQUEST['user_id'] )    ? $_REQUEST['user_id']    : get_current_user_id();
    93     $orderby            = isset( $_REQUEST['orderby'] )    ? $_REQUEST['orderby']    : 'rank_id';
    94     $order              = isset( $_REQUEST['order'] )      ? $_REQUEST['order']      : 'ASC';
    95     $show_title         = isset( $_REQUEST['show_title'] ) ? $_REQUEST['show_title'] : 'true';
    96     $show_thumb         = isset( $_REQUEST['show_thumb'] ) ? $_REQUEST['show_thumb'] : 'true';
    97     $show_description   = isset( $_REQUEST['show_description'] ) ? $_REQUEST['show_description'] : 'true';
     102    $type               = isset( $_REQUEST['types'] )      ? sanitize_text_field( $_REQUEST['types'] )      : false;
     103    $limit              = isset( $_REQUEST['limit'] )      ? sanitize_text_field( $_REQUEST['limit']  )    : false;
     104    $offset             = isset( $_REQUEST['offset'] )     ? sanitize_text_field( $_REQUEST['offset']  )   : false;
     105    $count              = isset( $_REQUEST['count'] )      ? sanitize_text_field( $_REQUEST['count']   )   : false;
     106    $search             = isset( $_REQUEST['search'] )     ? sanitize_text_field( $_REQUEST['search']  )   : false;
     107    $user_id            = isset( $_REQUEST['user_id'] )    ? sanitize_text_field( $_REQUEST['user_id']  )  : get_current_user_id();
     108    $orderby            = isset( $_REQUEST['orderby'] )    ? sanitize_text_field( $_REQUEST['orderby']  )  : 'rank_id';
     109    $order              = isset( $_REQUEST['order'] )      ? sanitize_text_field( $_REQUEST['order']   )   : 'ASC';
     110    $show_title         = isset( $_REQUEST['show_title'] ) ? sanitize_text_field( $_REQUEST['show_title'] ): 'true';
     111    $show_thumb         = isset( $_REQUEST['show_thumb'] ) ? sanitize_text_field( $_REQUEST['show_thumb'] ): 'true';
     112    $show_description   = isset( $_REQUEST['show_description'] ) ? sanitize_text_field( $_REQUEST['show_description'] ): 'true';
    98113   
    99     $image_width = isset( $_REQUEST['image_width'] ) ? $_REQUEST['image_width'] : '';
    100     $image_height = isset( $_REQUEST['image_height'] ) ? $_REQUEST['image_height'] : '';
     114    $image_width = isset( $_REQUEST['image_width'] ) ? sanitize_text_field( $_REQUEST['image_width'] ) : '';
     115    $image_height = isset( $_REQUEST['image_height'] )? sanitize_text_field( $_REQUEST['image_height'] ) : '';
    101116
    102117    // Convert $type to properly support multiple rank types
    103     $earned_ranks_shortcode_default_view = !empty( $_REQUEST['default_view'] ) ? $_REQUEST['default_view'] : $earned_ranks_shortcode_default_view;
     118    $earned_ranks_shortcode_default_view = !empty( $_REQUEST['default_view'] ) ? sanitize_text_field( $_REQUEST['default_view'] ) : $earned_ranks_shortcode_default_view;
    104119
    105120    if ( 'all' == $type ) {
     
    126141    $last_earned_id = 0;
    127142    $settings = ( $exists = badgeos_utilities::get_option( 'badgeos_settings' ) ) ? $exists : array();
    128     $last_rank = $wpdb->get_results( $wpdb->prepare( "select * from ".$wpdb->prefix."badgeos_ranks where rank_type!=%s and user_id=%d order by actual_date_earned desc limit 1", trim( $settings['ranks_step_post_type'] ), $user_ID ) );
     143    $last_rank = $wpdb->get_results( $wpdb->prepare( "select * from ".$wpdb->prefix."badgeos_ranks where rank_type!=%s and user_id=%d order by actual_date_earned desc limit 1", trim( $settings['ranks_step_post_type'] ), $user_id ) );
    129144    if( count( $last_rank ) > 0 ) {
    130145        $last_earned_id = $last_rank[0]->rank_id;
     
    154169            $args[ 's' ] = $search;
    155170        }
    156         //$count $user_id $image_width $image_height
    157171        // Loop ranks
    158172        $rank_posts = new WP_Query( $args );
    159         //print_r($rank_posts);
     173
    160174        $query_count += $rank_posts->found_posts;
    161175        while ( $rank_posts->have_posts() ) : $rank_posts->the_post();
     
    167181            }
    168182            $output = '<li><div id="badgeos-list-item-' . get_the_ID() . '" class="badgeos-list-item badgeos-list-item-'.get_the_ID().' '.$earned_this.'">';
    169 
    170183
    171184            // Achievement Image
     
    201214
    202215            $output .= '</div><!-- .badgeos-item-description -->';
    203             $output .= apply_filters( 'badgeos_after_ranks_list_item', '', $rank );
     216            $output .= apply_filters( 'badgeos_after_ranks_list_item', '', $rank_posts );
    204217            $output .= '</div></li><!-- .badgeos-ranks-list-item -->';
    205218
     
    235248        'query_count' => $query_count,
    236249        'badge_count' => $ranks_count,
    237         'attr'        => $_REQUEST
    238250    ) );
    239251
     
    247259 */
    248260function badgeos_ajax_get_earned_ranks() {
    249     global $user_ID, $blog_id, $wpdb;
     261   
     262    // Check for nonce security     
     263    if ( ! wp_verify_nonce( sanitize_text_field( $_POST['nonce'] ), 'security' ) ) {
     264        wp_send_json_error( 'Request blocked' );
     265    }
     266
     267    global $blog_id, $wpdb;
    250268
    251269    $badgeos_settings = ( $exists = badgeos_utilities::get_option( 'badgeos_settings' ) ) ? $exists : array();
     
    253271
    254272    // Setup our AJAX query vars
    255     $type       = isset( $_REQUEST['rank_type'] )  ? $_REQUEST['rank_type'] : false;
    256     $limit      = isset( $_REQUEST['limit'] )      ? $_REQUEST['limit']      : false;
    257     $offset     = isset( $_REQUEST['offset'] )     ? $_REQUEST['offset']    : false;
    258     $count      = isset( $_REQUEST['count'] )      ? $_REQUEST['count']      : false;
    259     $search     = isset( $_REQUEST['search'] )     ? $_REQUEST['search']    : false;
    260     $user_id    = isset( $_REQUEST['user_id'] )    ? $_REQUEST['user_id']    : get_current_user_id();
    261     $orderby    = isset( $_REQUEST['orderby'] )    ? $_REQUEST['orderby']    : 'rank_id';
    262     $order      = isset( $_REQUEST['order'] )      ? $_REQUEST['order']      : 'ASC';
    263     $show_title = isset( $_REQUEST['show_title'] ) ? $_REQUEST['show_title'] : 'true';
    264     $show_thumb = isset( $_REQUEST['show_thumb'] ) ? $_REQUEST['show_thumb'] : 'true';
    265     $show_description = isset( $_REQUEST['show_description'] ) ? $_REQUEST['show_description'] : 'true';
    266     $image_width = isset( $_REQUEST['image_width'] ) ? $_REQUEST['image_width'] : '';
    267     $image_height = isset( $_REQUEST['image_height'] ) ? $_REQUEST['image_height'] : '';
     273    $type       = isset( $_REQUEST['rank_type'] )  ? sanitize_text_field( $_REQUEST['rank_type']  ) : false;
     274    $limit      = isset( $_REQUEST['limit'] )      ? sanitize_text_field( $_REQUEST['limit']      ) : false;
     275    $offset     = isset( $_REQUEST['offset'] )     ? sanitize_text_field( $_REQUEST['offset']     ) : false;
     276    $count      = isset( $_REQUEST['count'] )      ? sanitize_text_field( $_REQUEST['count']      ) : false;
     277    $search     = isset( $_REQUEST['search'] )     ? sanitize_text_field( $_REQUEST['search']     ) : false;
     278    $user_id    = isset( $_REQUEST['user_id'] )    ? sanitize_text_field( $_REQUEST['user_id']    ) : get_current_user_id();
     279    $orderby    = isset( $_REQUEST['orderby'] )    ? sanitize_text_field( $_REQUEST['orderby']    ) : 'rank_id';
     280    $order      = isset( $_REQUEST['order'] )      ? sanitize_text_field( $_REQUEST['order']      ) : 'ASC';
     281    $show_title = isset( $_REQUEST['show_title'] ) ? sanitize_text_field( $_REQUEST['show_title'] ) : 'true';
     282    $show_thumb = isset( $_REQUEST['show_thumb'] ) ? sanitize_text_field( $_REQUEST['show_thumb'] ) : 'true';
     283    $show_description = isset( $_REQUEST['show_description'] ) ? sanitize_text_field( $_REQUEST['show_description']) : 'true';
     284    $image_width = isset( $_REQUEST['image_width'] ) ? sanitize_text_field(  $_REQUEST['image_width']) : '';
     285    $image_height = isset( $_REQUEST['image_height'] ) ? sanitize_text_field( $_REQUEST['image_height']) : '';
    268286   
    269287    // Convert $type to properly support multiple rank types
    270     $earned_ranks_shortcode_default_view = !empty( $_REQUEST['default_view'] ) ? $_REQUEST['default_view'] : $earned_ranks_shortcode_default_view;
     288    $earned_ranks_shortcode_default_view = !empty( $_REQUEST['default_view'] ) ? sanitize_text_field($_REQUEST['default_view']) : $earned_ranks_shortcode_default_view;
    271289
    272290    if ( 'all' == $type ) {
     
    298316    // Loop through each site (default is current site only)
    299317    $query_count = 0;
     318    $table_name = $wpdb->prefix . 'badgeos_ranks';
    300319    foreach( $sites as $site_blog_id ) {
    301320
    302         $qry = "SELECT * FROM ".$wpdb->prefix."badgeos_ranks WHERE user_id='".$user_id."'";
    303         $total_qry = "SELECT count(ID) as total FROM ".$wpdb->prefix."badgeos_ranks WHERE user_id='".$user_id."'";
     321        $qry = "SELECT * FROM {$table_name} WHERE user_id={$user_id}";
     322        $total_qry = "SELECT count(ID) as total FROM {$table_name} WHERE user_id={$user_id}";
    304323
    305324        if( is_array( $type ) && count( $type ) > 0 ) {
    306             $qry .= " and rank_type in ('".implode( "', '", $type )."') ";
    307             $total_qry .= " and rank_type in ('".implode( "', '", $type )."') ";
     325            $types = implode( "', '", $type );
     326            $qry .= " and rank_type in ('{$types}')  ";
     327            $total_qry .= " and rank_type in ('{$types}') ";
    308328        }
    309329
    310330        if ( $search ) {
    311             $qry .= " and rank_title like '%".$search."%' ";
    312             $total_qry .= " and rank_title like '%".$search."%' ";
     331            $qry .= " and rank_title like '%{$search}%' ";
     332            $total_qry .= " and rank_title like '%{$search}%' ";
    313333        }
    314334
     
    316336        if( !empty( $orderby ) ) {
    317337            if( !empty( $order ) ) {
    318                 $qry .= " ORDER BY ".$orderby." ".$order;
     338                $qry .= " ORDER BY {$orderby} {$order}";
    319339            } else {
    320                 $qry .= " ORDER BY ".$orderby." ASC";
    321             }
    322         }
    323 
    324         $qry .= " limit ".$offset.", ".$limit;
     340                $qry .= " ORDER BY {$orderby} ASC";
     341            }
     342        }
     343
     344        $qry .= " limit {$offset}, {$limit}";
    325345        $user_ranks = $wpdb->get_results( $qry );
    326346
     
    392412        'query_count' => $query_count,
    393413        'badge_count' => $ranks_count,
    394         'attr'        => $_REQUEST
    395414    ) );
    396415
     
    404423 */
    405424function badgeos_ajax_get_earned_achievements() {
    406     global $user_ID, $blog_id, $wpdb;
     425   
     426    // Check for nonce security     
     427    if ( isset( $_REQUEST['nonce'] ) && ! wp_verify_nonce( $_REQUEST['nonce'], 'bos-security' ) ) {
     428        wp_send_json_error( 'Request blocked' );
     429    }
     430
     431    global $blog_id, $wpdb;
    407432
    408433    // Convert $type to properly support multiple achievement types
     
    411436
    412437    // Setup our AJAX query vars
    413     $type       = isset( $_REQUEST['type'] )       ? $_REQUEST['type']       : false;
    414     $limit      = isset( $_REQUEST['limit'] )      ? $_REQUEST['limit']      : false;
    415     $offset     = isset( $_REQUEST['offset'] )     ? $_REQUEST['offset']     : false;
    416     $count      = isset( $_REQUEST['count'] )      ? $_REQUEST['count']      : false;
    417     $search     = isset( $_REQUEST['search'] )     ? $_REQUEST['search']     : false;
    418     $user_id    = isset( $_REQUEST['user_id'] )    ? $_REQUEST['user_id']    : get_current_user_id();
    419     $orderby    = isset( $_REQUEST['orderby'] )    ? $_REQUEST['orderby']    : 'ID';
    420     $order      = isset( $_REQUEST['order'] )      ? $_REQUEST['order']      : 'ASC';
    421     $wpms       = isset( $_REQUEST['wpms'] )       ? $_REQUEST['wpms']       : false;
    422     $include    = isset( $_REQUEST['include'] )    ? $_REQUEST['include']    : array();
    423     $exclude    = isset( $_REQUEST['exclude'] )    ? $_REQUEST['exclude']    : array();
    424 
    425     $show_title = isset( $_REQUEST['show_title'] ) ? $_REQUEST['show_title'] : 'true';
    426     $show_thumb = isset( $_REQUEST['show_thumb'] ) ? $_REQUEST['show_thumb'] : 'true';
    427     $show_description = isset( $_REQUEST['show_description'] ) ? $_REQUEST['show_description'] : 'true';
    428     $image_width = isset( $_REQUEST['image_width'] ) ? $_REQUEST['image_width'] : '';
    429     $image_height = isset( $_REQUEST['image_height'] ) ? $_REQUEST['image_height'] : '';
    430     $earned_achievements_shortcode_default_view = !empty( $_REQUEST['default_view'] ) ? $_REQUEST['default_view'] : $earned_achievements_shortcode_default_view;
     438    $type       = isset( $_REQUEST['type'] )       ? sanitize_text_field( $_REQUEST['type']   )    : false;
     439    $limit      = isset( $_REQUEST['limit'] )      ? sanitize_text_field( $_REQUEST['limit']  )    : false;
     440    $offset     = isset( $_REQUEST['offset'] )     ? sanitize_text_field( $_REQUEST['offset'] )    : false;
     441    $count      = isset( $_REQUEST['count'] )      ? sanitize_text_field( $_REQUEST['count']  )    : false;
     442    $search     = isset( $_REQUEST['search'] )     ? sanitize_text_field( $_REQUEST['search'] )    : false;
     443    $user_id    = isset( $_REQUEST['user_id'] )    ? sanitize_text_field( $_REQUEST['user_id'])    : get_current_user_id();
     444    $orderby    = isset( $_REQUEST['orderby'] )    ? sanitize_text_field( $_REQUEST['orderby'])    : 'ID';
     445    $order      = isset( $_REQUEST['order'] )      ? sanitize_text_field( $_REQUEST['order']  )    : 'ASC';
     446    $wpms       = isset( $_REQUEST['wpms'] )       ? sanitize_text_field( $_REQUEST['wpms']   )    : false;
     447    $include    = isset( $_REQUEST['include'] )    ? sanitize_text_field( $_REQUEST['include'])    : array();
     448    $exclude    = isset( $_REQUEST['exclude'] )    ? sanitize_text_field( $_REQUEST['exclude'])    : array();
     449
     450    $show_title = isset( $_REQUEST['show_title'] ) ? sanitize_text_field($_REQUEST['show_title']) : 'true';
     451    $show_thumb = isset( $_REQUEST['show_thumb'] ) ? sanitize_text_field($_REQUEST['show_thumb']) : 'true';
     452    $show_description = isset( $_REQUEST['show_description'] ) ? sanitize_text_field($_REQUEST['show_description']) : 'true';
     453    $image_width = isset( $_REQUEST['image_width'] ) ? sanitize_text_field($_REQUEST['image_width']) : '';
     454    $image_height = isset( $_REQUEST['image_height'] ) ? sanitize_text_field($_REQUEST['image_height']) : '';
     455    $earned_achievements_shortcode_default_view = !empty( $_REQUEST['default_view'] ) ? sanitize_text_field($_REQUEST['default_view'] ): $earned_achievements_shortcode_default_view;
    431456
    432457    if ( 'all' == $type ) {
     
    441466
    442467    // Get the current user if one wasn't specified
    443     if( ! $user_id )
    444         $user_id = $user_ID;
     468    // if( ! $user_id )
     469        // $user_id = get_current_user_id();
    445470
    446471    // Initialize our output and counters
     
    460485
    461486    // Loop through each site (default is current site only)
     487    $table_name = $wpdb->prefix . "badgeos_achievements";
    462488    $query_count = 0;
    463489    foreach( $sites as $site_blog_id ) {
    464490
    465         $qry = "SELECT * FROM ".$wpdb->prefix."badgeos_achievements WHERE site_id='".$site_blog_id."'";
    466         $total_qry = "SELECT count(ID) as total FROM ".$wpdb->prefix."badgeos_achievements WHERE site_id='".$site_blog_id."'";
     491        $qry = "SELECT * FROM {$table_name} WHERE site_id={$site_blog_id}";
     492        $total_qry = "SELECT count(ID) as total FROM {$table_name} WHERE site_id={$site_blog_id}";
    467493
    468494        if( is_array( $type ) && count( $type ) > 0 ) {
    469             $qry .= " and post_type in ('".implode( "', '", $type )."') ";
    470             $total_qry .= " and post_type in ('".implode( "', '", $type )."') ";
    471         }
    472 
    473         $qry .= " and user_id = '".$user_id."' ";
    474         $total_qry .= " and user_id = '".$user_id."' ";
     495            $types = implode( "', '", $type );
     496            $qry .= " and post_type in ('{$types}') ";
     497            $total_qry .= " and post_type in ('{$types}') ";
     498        }
     499
     500        $qry .= " and user_id = {$user_id} ";
     501        $total_qry .= " and user_id = {$user_id} ";
    475502
    476503        if ( $search ) {
    477             $qry .= " and achievement_title like '%".$search."%' ";
    478             $total_qry .= " and achievement_title like '%".$search."%' ";
     504            $qry .= " and achievement_title like '%{$search}%' ";
     505            $total_qry .= " and achievement_title like '%{$search}%' ";
    479506        }
    480507
    481508        // Build $include array
    482509        if ( !empty( $include ) ) {
    483             $qry .= " and ID in (".$include.") ";
    484             $total_qry .= " and ID in (".$include.") ";
     510            $qry .= " and ID in ({$include}) ";
     511            $total_qry .= " and ID in ({$include}) ";
    485512        }
    486513
    487514        // Build $exclude array
    488515        if ( !empty( $exclude ) ) {
    489             $qry .= " and ID not in (".$exclude.") ";
    490             $total_qry .= " and ID not in (".$exclude.") ";
     516            $qry .= " and ID not in ({$exclude}) ";
     517            $total_qry .= " and ID not in ({$exclude}) ";
    491518        }
    492519        $query_count += intval( $wpdb->get_var( $total_qry ) );
    493520        if( !empty( $orderby ) ) {
    494521            if( !empty( $order ) ) {
    495                 $qry .= " ORDER BY ".$orderby." ".$order;
     522                $qry .= " ORDER BY {$orderby} {$order}";
    496523            } else {
    497                 $qry .= " ORDER BY ".$orderby." ASC";
    498             }
    499         }
    500 
    501         $qry .= " limit ".$offset.", ".$limit;
     524                $qry .= " ORDER BY {$orderby} ASC";
     525            }
     526        }
     527
     528        $qry .= " limit {$offset}, {$limit}";
     529
    502530        $user_achievements = $wpdb->get_results( $qry );
    503531
     
    591619        'query_count' => $query_count,
    592620        'badge_count' => $achievement_count,
    593         'attr'        => $_REQUEST
    594621   
    595622    ) );
     
    603630 */
    604631function badgeos_ajax_get_achievements() {
    605     global $user_ID, $blog_id;
     632   
     633
     634    // Check for nonce security     
     635    if ( isset( $_REQUEST['nonce'] ) && ! wp_verify_nonce( $_REQUEST['nonce'], 'bos-security' ) ) {
     636        wp_send_json_error( 'Request blocked' );
     637    }
     638
     639
     640    global $blog_id;
    606641
    607642    // Convert $type to properly support multiple achievement types
     
    611646    $earned_ids = [];
    612647    // Setup our AJAX query vars
    613     $type       = isset( $_REQUEST['type'] )       ? $_REQUEST['type']       : false;
    614     $limit      = isset( $_REQUEST['limit'] )      ? $_REQUEST['limit']      : false;
    615     $offset     = isset( $_REQUEST['offset'] )     ? $_REQUEST['offset']     : false;
    616     $count      = isset( $_REQUEST['count'] )      ? $_REQUEST['count']      : false;
    617     $filter     = isset( $_REQUEST['filter'] )     ? $_REQUEST['filter']     : false;
    618     $search     = isset( $_REQUEST['search'] )     ? $_REQUEST['search']     : false;
    619     $user_id    = isset( $_REQUEST['user_id'] )    ? $_REQUEST['user_id']    : false;
    620     $orderby    = isset( $_REQUEST['orderby'] )    ? $_REQUEST['orderby']    : false;
    621     $order      = isset( $_REQUEST['order'] )      ? $_REQUEST['order']      : false;
    622     $wpms       = isset( $_REQUEST['wpms'] )       ? $_REQUEST['wpms']       : false;
    623     $include    = isset( $_REQUEST['include'] )    ? $_REQUEST['include']    : array();
    624     $exclude    = isset( $_REQUEST['exclude'] )    ? $_REQUEST['exclude']    : array();
    625     $meta_key   = isset( $_REQUEST['meta_key'] )   ? $_REQUEST['meta_key']   : '';
    626     $meta_value = isset( $_REQUEST['meta_value'] ) ? $_REQUEST['meta_value'] : '';
    627     $show_title = isset( $_REQUEST['show_title'] ) ? $_REQUEST['show_title'] : 'true';
    628     $show_thumb = isset( $_REQUEST['show_thumb'] ) ? $_REQUEST['show_thumb'] : 'true';
    629     $show_description = isset( $_REQUEST['show_description'] ) ? $_REQUEST['show_description'] : 'true';
    630     $show_steps = isset( $_REQUEST['show_steps'] ) ? $_REQUEST['show_steps'] : 'true';
    631 
    632     $image_width = isset( $_REQUEST['image_width'] ) ? $_REQUEST['image_width'] : '';
    633     $image_height = isset( $_REQUEST['image_height'] ) ? $_REQUEST['image_height'] : '';
    634 
    635     $achievement_list_default_view = !empty( $_REQUEST['default_view'] ) ? $_REQUEST['default_view'] : $achievement_list_default_view;
     648    $type       = isset( $_REQUEST['type'] )       ? sanitize_text_field( $_REQUEST['type']       ): false;
     649    $limit      = isset( $_REQUEST['limit'] )      ? sanitize_text_field( $_REQUEST['limit']      ): false;
     650    $offset     = isset( $_REQUEST['offset'] )     ? sanitize_text_field( $_REQUEST['offset']     ): false;
     651    $count      = isset( $_REQUEST['count'] )      ? sanitize_text_field( $_REQUEST['count']      ): false;
     652    $filter     = isset( $_REQUEST['filter'] )     ? sanitize_text_field( $_REQUEST['filter']     ): false;
     653    $search     = isset( $_REQUEST['search'] )     ? sanitize_text_field( $_REQUEST['search']     ): false;
     654    $user_id    = isset( $_REQUEST['user_id'] )    ? sanitize_text_field( $_REQUEST['user_id']    ): false;
     655    $orderby    = isset( $_REQUEST['orderby'] )    ? sanitize_text_field( $_REQUEST['orderby']    ): false;
     656    $order      = isset( $_REQUEST['order'] )      ? sanitize_text_field( $_REQUEST['order']      ): false;
     657    $wpms       = isset( $_REQUEST['wpms'] )       ? sanitize_text_field( $_REQUEST['wpms']       ): false;
     658    $include    = isset( $_REQUEST['include'] )    ? sanitize_text_field( $_REQUEST['include']    ): array();
     659    $exclude    = isset( $_REQUEST['exclude'] )    ? sanitize_text_field( $_REQUEST['exclude']    ): array();
     660    $meta_key   = isset( $_REQUEST['meta_key'] )   ? sanitize_text_field( $_REQUEST['meta_key']   ): '';
     661    $meta_value = isset( $_REQUEST['meta_value'] ) ? sanitize_text_field( $_REQUEST['meta_value'] ): '';
     662    $show_title = isset( $_REQUEST['show_title'] ) ? sanitize_text_field( $_REQUEST['show_title'] ): 'true';
     663    $show_thumb = isset( $_REQUEST['show_thumb'] ) ? sanitize_text_field( $_REQUEST['show_thumb'] ): 'true';
     664    $show_description = isset( $_REQUEST['show_description'] ) ? sanitize_text_field($_REQUEST['show_description'] ) : 'true';
     665    $show_steps = isset( $_REQUEST['show_steps'] ) ? sanitize_text_field($_REQUEST['show_steps'] ) : 'true';
     666
     667    $image_width = isset( $_REQUEST['image_width'] ) ? sanitize_text_field($_REQUEST['image_width'] ) : '';
     668    $image_height = isset( $_REQUEST['image_height'] ) ? sanitize_text_field($_REQUEST['image_height'] ) : '';
     669
     670    $achievement_list_default_view = !empty( $_REQUEST['default_view'] ) ? sanitize_text_field($_REQUEST['default_view'] ) : $achievement_list_default_view;
    636671
    637672    if ( 'all' == $type ) {
     
    647682    // Get the current user if one wasn't specified
    648683    if( ! $user_id )
    649         $user_id = $user_ID;
     684        $user_id = get_current_user_id();
    650685
    651686    // Build $include array
     
    784819        'badge_count' => $achievement_count,
    785820        'type'        => $earned_ids,
    786         'attr'        => $_REQUEST
    787821    ) );
    788822}
     
    801835
    802836    global $wpdb;
    803 
     837    $str_query = sanitize_text_field( $_REQUEST['q'] );
     838   
    804839    // Pull back the search string
    805     $search = esc_sql( $wpdb->esc_like( $_REQUEST['q'] ) );
     840    $search = esc_sql( $wpdb->esc_like( $str_query ) );
    806841
    807842    $sql = "SELECT ID as id, user_login as label, ID as value FROM {$wpdb->users}";
     
    809844    // Build our query
    810845    if ( !empty( $search ) ) {
    811         $sql .= " WHERE user_login LIKE '%".$_REQUEST['q']."%'";
     846        $sql .= " WHERE user_login LIKE '%{$str_query}%'";
    812847    }
    813848
    814849    // Fetch our results (store as associative array)
    815     $results = $wpdb->get_results( $sql." limit 100 ", 'ARRAY_A' );
     850    $results = $wpdb->get_results( $sql, 'ARRAY_A' );
    816851
    817852    // Return our results
     
    832867
    833868    global $wpdb;
     869    $str_query = sanitize_text_field( $_REQUEST['q'] );
    834870
    835871    // Pull back the search string
    836     $search = esc_sql( $wpdb->esc_like( $_REQUEST['q'] ) );
     872    $search = esc_sql( $wpdb->esc_like( $str_query ) );
    837873
    838874    $sql = "SELECT ID as id, user_login as text FROM {$wpdb->users}";
     
    840876    // Build our query
    841877    if ( !empty( $search ) ) {
    842         $sql .= " WHERE user_login LIKE '%".$_REQUEST['q']."%'";
     878        $sql .= " WHERE user_login LIKE '%{$str_query}%'";
    843879    }
    844880
    845881    // Fetch our results (store as associative array)
    846     $results = $wpdb->get_results( $sql." limit 100 ", 'ARRAY_A' );
     882    $results = $wpdb->get_results( $sql, 'ARRAY_A' );
    847883
    848884    // Return our results
     
    860896    $badgeos_settings = ( $exists = badgeos_utilities::get_option( 'badgeos_settings' ) ) ? $exists : array();
    861897    // Pull back the search string
    862     $search = isset( $_REQUEST['q'] ) ? $wpdb->esc_like( $_REQUEST['q'] ) : '';
     898    $search = isset( $_REQUEST['q'] ) ? $wpdb->esc_like( sanitize_text_field( $_REQUEST['q'] ) ) : '';
    863899    $achievement_types = isset( $_REQUEST['post_type'] ) && 'all' !== $_REQUEST['post_type']
    864         ? array( esc_sql( $_REQUEST['post_type'] ) )
     900        ? array( esc_sql( sanitize_text_field( $_REQUEST['post_type'] ) ) )
    865901        : array_diff( badgeos_get_achievement_types_slugs(), array( trim( $badgeos_settings['achievement_step_post_type'] ) ) );
    866902    $post_type = sprintf( 'AND p.post_type IN(\'%s\')', implode( "','", $achievement_types ) );
     
    898934        die();
    899935    }
    900 
     936   
     937    $str_query = sanitize_text_field( $_REQUEST['q'] );
    901938    $badgeos_settings = ( $exists = badgeos_utilities::get_option( 'badgeos_settings' ) ) ? $exists : array();
    902939    $achievement_types = array_diff( badgeos_get_achievement_types_slugs(), array( trim( $badgeos_settings['achievement_step_post_type'] ) ) );
    903     $matches = preg_grep( "/{$_REQUEST['q']}/", $achievement_types );
     940    $matches = preg_grep( "/{$str_query}/", $achievement_types );
    904941    $found = array_map( 'get_post_type_object', $matches );
    905942
     
    912949
    913950function delete_badgeos_log_entries() {
    914 
    915     $action = ( isset( $_POST['action'] ) ? $_POST['action'] : '' );
     951    $action = ( isset( $_POST['action'] ) ? sanitize_text_field( $_POST['action'] ) : '' );
    916952    if( $action !== 'delete_badgeos_log_entries' ) {
    917953        exit;
  • badgeos/trunk/includes/assets.php

    r2448573 r2765251  
    6464        if( $assets[$assets_id] ) {
    6565
    66             $downloaded_assets_id = badgeos_utilities::get_option( 'badgeos_restapi_'.$assets_id  );
     66            // $downloaded_assets_id = badgeos_utilities::get_option( 'badgeos_restapi_'.$assets_id  );
    6767            if( trim( $downloaded_assets_id ) != 'downloaded' ) {
    6868                if( !empty( $assets[$assets_id]->asset_url ) ) {
     
    108108                            wp_update_attachment_metadata( $attach_id, $attach_data );
    109109                        }
    110                         badgeos_utilities::update_option( 'badgeos_restapi_'.$assets_id, 'downloaded'  );
     110                        // badgeos_utilities::update_option( 'badgeos_restapi_'.$assets_id, 'downloaded'  );
    111111                        echo 'done';
    112112                    } else {
  • badgeos/trunk/includes/badgeos-emails.php

    r2687784 r2765251  
    6464               
    6565            if( ! isset( $badgeos_admin_tools['email_disable_earned_achievement_email'] ) || $badgeos_admin_tools['email_disable_earned_achievement_email'] == 'no' ) {
    66                 $results = $wpdb->get_results( "select * from ".$wpdb->prefix."badgeos_achievements where entry_id='".$entry_id."'", 'ARRAY_A' );
     66                $results = $wpdb->get_results( "select * from ".$wpdb->prefix."badgeos_achievements where entry_id={$entry_id}", 'ARRAY_A' );
    6767                if( count( $results ) > 0 ) {
    6868                    $record = $results[ 0 ];
     
    257257
    258258            if( ! isset( $badgeos_admin_tools['email_disable_achievement_steps_email'] ) || $badgeos_admin_tools['email_disable_achievement_steps_email'] == 'no' ) {
    259                 $results = $wpdb->get_results( "select * from ".$wpdb->prefix."badgeos_achievements where entry_id='".$entry_id."'", 'ARRAY_A' );
     259                $results = $wpdb->get_results( "select * from ".$wpdb->prefix."badgeos_achievements where entry_id={$entry_id}", 'ARRAY_A' );
    260260                if( count( $results ) > 0 ) {
    261261                    $record = $results[ 0 ];
     
    386386
    387387            if( ! isset( $badgeos_admin_tools['email_disable_rank_steps_email'] ) || $badgeos_admin_tools['email_disable_rank_steps_email'] == 'no' ) {
    388                 $results = $wpdb->get_results( "select * from ".$wpdb->prefix."badgeos_ranks where id='".$rank_entry_id."'", 'ARRAY_A' );
     388                $results = $wpdb->get_results( "select * from ".$wpdb->prefix."badgeos_ranks where id={$rank_entry_id}", 'ARRAY_A' );
    389389                if( count( $results ) > 0 ) {
    390390                   
     
    520520                if( ! isset( $badgeos_admin_tools['email_disable_ranks_email'] ) || $badgeos_admin_tools['email_disable_ranks_email'] == 'no' ) {
    521521       
    522                     $results = $wpdb->get_results( "select * from ".$wpdb->prefix."badgeos_ranks where id='".$rank_entry_id."'", 'ARRAY_A' );
     522                    $results = $wpdb->get_results( "select * from ".$wpdb->prefix."badgeos_ranks where id={$rank_entry_id}", 'ARRAY_A' );
    523523                    if( count( $results ) > 0 ) {
    524524                       
     
    658658            if( ! isset( $badgeos_admin_tools['email_disable_point_awards_email'] ) || $badgeos_admin_tools['email_disable_point_awards_email'] == 'no' ) {
    659659
    660                 $results = $wpdb->get_results( "select * from ".$wpdb->prefix."badgeos_points where id='".$point_rec_id."'", 'ARRAY_A' );
     660                $results = $wpdb->get_results( "select * from ".$wpdb->prefix."badgeos_points where id={$point_rec_id}", 'ARRAY_A' );
    661661                if( count( $results ) > 0 ) {
    662662                   
     
    789789            if( ! isset( $badgeos_admin_tools['email_disable_point_deducts_email'] ) || $badgeos_admin_tools['email_disable_point_deducts_email'] == 'no' ) {
    790790
    791                 $results = $wpdb->get_results( "select * from ".$wpdb->prefix."badgeos_points where id='".$point_rec_id."'", 'ARRAY_A' );
     791                $results = $wpdb->get_results( "select * from ".$wpdb->prefix."badgeos_points where id={$point_rec_id}", 'ARRAY_A' );
    792792                if( count( $results ) > 0 ) {
    793793                   
     
    921921            if( ! isset( $badgeos_admin_tools['email_disable_earned_achievement_email'] ) || $badgeos_admin_tools['email_disable_earned_achievement_email'] == 'no' ) {
    922922               
    923                 $results = $wpdb->get_results( "select * from ".$wpdb->prefix."badgeos_achievements where entry_id='".$entry_id."'", 'ARRAY_A' );
     923                $results = $wpdb->get_results( "select * from ".$wpdb->prefix."badgeos_achievements where entry_id={$entry_id}", 'ARRAY_A' );
    924924                if( count( $results ) > 0 ) {
    925925                    $record = $results[ 0 ];
  • badgeos/trunk/includes/blocks/block-routes.php

    r2384705 r2765251  
    6767function badgeos_block_achievements_award_list($request) {
    6868
    69 
    7069  global $wpdb;
    7170
     
    7574  $q                  = sanitize_text_field( $request['q'] );
    7675
    77   $sql = "SELECT entry_id as value, CONCAT(achievement_title, ' : ', entry_id) as label, entry_id as value FROM ".$wpdb->prefix."badgeos_achievements where post_type!='".$badgeos_settings['achievement_step_post_type']."'";
     76  $table_name         = $wpdb->prefix.'badgeos_achievements';
     77  $sql = "SELECT entry_id as value, CONCAT(achievement_title, ' : ', entry_id) as label FROM {$table_name} WHERE post_type != '{$badgeos_settings['achievement_step_post_type']}'";
    7878
    7979  // Build our query
    8080  if ( !empty( $q ) ) {
    81       $sql .= " and achievement_title LIKE '%". $q."%'";
     81      $sql .= " and achievement_title LIKE '%{$q}%'";
    8282  }
    8383
    8484  // Build our query
    85   if ( !empty( $achievement_id ) && intval( $achievement_id ) ) {
    86       $sql .= " and ID = '". $achievement_id."'";
     85  if ( !empty( $achievement_id ) ) {
     86      $sql .= " and ID = '{$achievement_id}'";
    8787  }
    8888 
    8989  // Build our query
    90   if ( ! empty( $user_id ) && intval( $user_id ) ) {
    91       $sql .= " and user_id = '". $user_id."'";
     90  if ( ! empty( $user_id ) ) {
     91      $sql .= " and user_id = '{$user_id}'";
    9292  }
    9393
  • badgeos/trunk/includes/cmb2/includes/CMB2.php

    r2068300 r2765251  
    711711
    712712        // Fall-back to $_POST data.
    713         $this->data_to_save = ! empty( $data_to_save ) ? $data_to_save : $_POST;
     713        $this->data_to_save = ! empty( $data_to_save ) ? $data_to_save : array_map( 'sanitize_post', $_POST );
    714714        $object_id = $this->object_id( $object_id );
    715715        $object_type = $this->object_type( $object_type );
     
    981981        switch ( $this->object_type() ) {
    982982            case 'user':
    983                 $object_id = isset( $_REQUEST['user_id'] ) ? wp_unslash( $_REQUEST['user_id'] ) : $object_id;
     983                $object_id = isset( $_REQUEST['user_id'] ) ? sanitize_text_field( $_REQUEST['user_id'] ) : $object_id;
    984984                $object_id = ! $object_id && 'user-new.php' !== $pagenow && isset( $GLOBALS['user_ID'] ) ? $GLOBALS['user_ID'] : $object_id;
    985985                break;
    986986
    987987            case 'comment':
    988                 $object_id = isset( $_REQUEST['c'] ) ? wp_unslash( $_REQUEST['c'] ) : $object_id;
     988                $object_id = isset( $_REQUEST['c'] ) ? sanitize_text_field( $_REQUEST['c'] ) : $object_id;
    989989                $object_id = ! $object_id && isset( $GLOBALS['comments']->comment_ID ) ? $GLOBALS['comments']->comment_ID : $object_id;
    990990                break;
    991991
    992992            case 'term':
    993                 $object_id = isset( $_REQUEST['tag_ID'] ) ? wp_unslash( $_REQUEST['tag_ID'] ) : $object_id;
     993                $object_id = isset( $_REQUEST['tag_ID'] ) ? sanitize_text_field( $_REQUEST['tag_ID'] ) : $object_id;
    994994                break;
    995995
     
    10031003            default:
    10041004                $object_id = isset( $GLOBALS['post']->ID ) ? $GLOBALS['post']->ID : $object_id;
    1005                 $object_id = isset( $_REQUEST['post'] ) ? wp_unslash( $_REQUEST['post'] ) : $object_id;
     1005                $object_id = isset( $_REQUEST['post'] ) ? sanitize_text_field( $_REQUEST['post'] ) : $object_id;
    10061006                break;
    10071007        }
     
    11681168
    11691169        if ( ! empty( $_GET['page'] ) && in_array( $_GET['page'], $keys ) ) {
    1170             $found_key = $_GET['page'];
     1170            $found_key = sanitize_text_field( $_GET['page'] );
    11711171        }
    11721172
    11731173        if ( ! empty( $_POST['action'] ) && in_array( $_POST['action'], $keys ) ) {
    1174             $found_key = $_POST['action'];
     1174            $found_key = sanitize_text_field( $_POST['action'] );
    11751175        }
    11761176
  • badgeos/trunk/includes/cmb2/includes/CMB2_Ajax.php

    r2068300 r2765251  
    7777
    7878        // Set width of embed
    79         $embed_width = isset( $_REQUEST['oembed_width'] ) && intval( $_REQUEST['oembed_width'] ) < 640 ? intval( $_REQUEST['oembed_width'] ) : '640';
     79        $embed_width = isset( $_REQUEST['oembed_width'] ) && intval( $_REQUEST['oembed_width'] ) < 640 ? sanitize_text_field( $_REQUEST['oembed_width'] ) : '640';
    8080
    8181        // Set url
     
    9292        $html = $this->get_oembed( array(
    9393            'url'         => $oembed_url,
    94             'object_id'   => $_REQUEST['object_id'],
    95             'object_type' => isset( $_REQUEST['object_type'] ) ? $_REQUEST['object_type'] : 'post',
     94            'object_id'   => sanitize_text_field( $_REQUEST['object_id'] ),
     95            'object_type' => isset( $_REQUEST['object_type'] ) ? sanitize_text_field( $_REQUEST['object_type'] ) : 'post',
    9696            'oembed_args' => $embed_args,
    97             'field_id'    => $_REQUEST['field_id'],
     97            'field_id'    => sanitize_text_field( $_REQUEST['field_id'] ),
    9898        ) );
    9999
  • badgeos/trunk/includes/cmb2/includes/CMB2_Options_Hookup.php

    r2068300 r2765251  
    284284
    285285            $updated = $this->cmb
    286                 ->save_fields( $this->option_key, $this->cmb->object_type(), $_POST )
     286                ->save_fields( $this->option_key, $this->cmb->object_type(), array_map('sanitize_text_field', $_POST ) )
    287287                ->was_updated(); // Will be false if no values were changed/updated.
    288288
  • badgeos/trunk/includes/cmb2/includes/CMB2_hookup.php

    r2384705 r2765251  
    599599        if ( $section == $this->cmb->prop( 'new_user_section' ) ) {
    600600            $object_id = $this->cmb->object_id();
    601             $this->cmb->object_id( isset( $_REQUEST['user_id'] ) ? $_REQUEST['user_id'] : $object_id );
     601            $this->cmb->object_id( isset( $_REQUEST['user_id'] ) ? sanitize_text_field( $_REQUEST['user_id'] ): $object_id );
    602602            $this->user_metabox();
    603603        }
     
    740740
    741741        if ( $this->can_save( get_comment_type( $comment_id ) ) && $can_edit ) {
    742             $this->cmb->save_fields( $comment_id, 'comment', $_POST );
     742            $this->cmb->save_fields( $comment_id, 'comment', array_map('sanitize_text_field', $_POST ) );
    743743        }
    744744    }
     
    754754        // check permissions
    755755        if ( $this->can_save( 'user' ) ) {
    756             $this->cmb->save_fields( $user_id, 'user', $_POST );
     756            $this->cmb->save_fields( $user_id, 'user', array_map('sanitize_text_field', $_POST ) );
    757757        }
    758758    }
     
    772772        // check permissions
    773773        if ( $this->taxonomy_can_save( $taxonomy ) && $this->can_save( 'term' ) ) {
    774             $this->cmb->save_fields( $term_id, 'term', $_POST );
     774            $this->cmb->save_fields( $term_id, 'term', array_map('sanitize_text_field', $_POST ) );
    775775        }
    776776    }
  • badgeos/trunk/includes/cmb2/includes/helper-functions.php

    r2068300 r2765251  
    320320        && $object_id && $_POST['object_id'] == $object_id
    321321    ) {
    322         $cmb->save_fields( $object_id, $cmb->object_type(), $_POST );
     322        $cmb->save_fields( $object_id, $cmb->object_type(), array_map('sanitize_text_field', $_POST ) );
    323323    }
    324324
  • badgeos/trunk/includes/content-filters.php

    r2687784 r2765251  
    283283        $default_point_type     = ( ! empty ( $badgeos_settings['default_point_type'] ) ) ? $badgeos_settings['default_point_type'] : '';
    284284        $point_type = badgeos_points_type_display_title( $default_point_type );
    285         if( !empty( $point_type ) ) {
     285
     286        if( ! empty( $point_type ) ) {
    286287            return '<div class="badgeos-item-points badgeos-item-points-'.$points_type.' badgeos-item-points-'.$achievement_id.' badgeos-item-points-'.$points_type.'-'.$achievement_id.'"><span>0</span> '.$point_type.'</div>';
    287288        } else {
     
    298299 */
    299300function badgeos_add_earned_class_single( $classes = array() ) {
    300     global $user_ID;
    301301
    302302    // check if current user has earned the achievement they're viewing
    303     $classes[] = badgeos_get_user_achievements( array( 'user_id' => $user_ID, 'achievement_id' => get_the_ID() ) ) ? 'user-has-earned' : 'user-has-not-earned';
     303    $classes[] = badgeos_get_user_achievements( array( 'user_id' => get_current_user_id(), 'achievement_id' => get_the_ID() ) ) ? 'user-has-earned' : 'user-has-not-earned';
    304304
    305305    return $classes;
     
    354354function badgeos_render_achievement( $achievement = 0, $show_title = 'true', $show_thumb = 'true', $show_description = 'true', $show_steps = 'true', $image_width = '', $image_height = '' ) {
    355355
    356     global $user_ID, $wpdb;
     356    global $wpdb;
     357    $user_id = get_current_user_id();
    357358
    358359    // If we were given an ID, get the post
     
    365366
    366367    // check if user has earned this Achievement, and add an 'earned' class
    367     $earned_status = badgeos_get_user_achievements( array( 'user_id' => $user_ID, 'achievement_id' => absint( $achievement->ID ) ) ) ? 'user-has-earned' : 'user-has-not-earned';
     368    $earned_status = badgeos_get_user_achievements( array( 'user_id' => absint( $user_id ), 'achievement_id' => absint( $achievement->ID ) ) ) ? 'user-has-earned' : 'user-has-not-earned';
    368369
    369370    // Each Achievement
     
    396397            $check_mark = '';
    397398            $settings = ( $exists = badgeos_utilities::get_option( 'badgeos_settings' ) ) ? $exists : array();
    398             $last_achievements = $wpdb->get_results( $wpdb->prepare( "select * from ".$wpdb->prefix."badgeos_achievements where post_type!=%s and user_id=%d order by actual_date_earned desc limit 1", trim( $settings['achievement_step_post_type'] ), $user_ID ) );
     399            $last_achievements = $wpdb->get_results( $wpdb->prepare( "select * from ".$wpdb->prefix."badgeos_achievements where post_type!=%s and user_id=%d order by actual_date_earned desc limit 1", trim( $settings['achievement_step_post_type'] ), $user_id ) );
    399400            if( count( $last_achievements ) > 0 ) {
    400401                $last_earned_id = $last_achievements[0]->ID;
  • badgeos/trunk/includes/meta-boxes.php

    r2687784 r2765251  
    2626
    2727    // Setup our $post_id, if available
    28     $post_id = isset( $_GET['post'] ) ? $_GET['post'] : 0;
     28    $post_id = isset( $_GET['post'] ) ? sanitize_text_field( $_GET['post'] ) : 0;
    2929
    3030    $badgeos_settings = ( $exists = badgeos_utilities::get_option( 'badgeos_settings' ) ) ? $exists : array();
     
    9999
    100100    // Setup our $post_id, if available
    101     $post_id = isset( $_GET['post'] ) ? $_GET['post'] : 0;
     101    $post_id = isset( $_GET['post'] ) ? sanitize_text_field( $_GET['post'] ) : 0;
    102102
    103103    // New Achievement Types
  • badgeos/trunk/includes/meta-to-db.php

    r2384705 r2765251  
    33function badgeos_migrate_data_from_meta_to_db_callback() {
    44
    5     $action = ( isset( $_POST['action'] ) ? $_POST['action'] : '' );
     5    $action = ( isset( $_POST['action'] ) ? sanitize_text_field( $_POST['action'] ) : '' );
    66
    77    if( $action == 'badgeos_migrate_data_from_meta_to_db' ) {
  • badgeos/trunk/includes/open_badge/class-open-badge.php

    r2562800 r2765251  
    337337        $badge_expiry = '';
    338338       
    339         $recs = $wpdb->get_results( "select * from ".$wpdb->prefix."badgeos_achievements where entry_id='".$entry_id."'" );
     339        $recs = $wpdb->get_results( "select * from ".$wpdb->prefix."badgeos_achievements where entry_id={$entry_id}" );
    340340        if( count( $recs ) > 0 && intval( $open_badge_expiration ) > 0 ) {
    341341           
  • badgeos/trunk/includes/open_badge/functions.php

    r2448573 r2765251  
    225225        $achievement_id = sanitize_text_field( $_REQUEST['achievement_id'] );
    226226
    227         $where = " entry_id = '".$entry_id."' and ID = '".$achievement_id."' and user_id='".$user_id."'";
     227        $where = " entry_id={$entry_id} and ID ={$achievement_id} AND user_id={$user_id} ";
    228228
    229229        $table_name = $wpdb->prefix . 'badgeos_achievements';
     
    290290   
    291291    //$pt = get_current_screen()->post_type;
    292     $pt = isset( $_GET['post'] ) ? get_post_type( $_GET['post'] ) : '';
     292    $pt = isset( $_GET['post'] ) ? get_post_type(  sanitize_text_field( $_GET['post'] ) ) : '';
    293293    $badgeos_settings = ( $exists = badgeos_utilities::get_option( 'badgeos_settings' ) ) ? $exists : array();     
    294294    $achievement_types = get_posts( array(
     
    374374function badgeos_open_badge_metabox_save( $post_id = 0 ) {
    375375   
    376     // Verify nonce
    377376    if ( isset( $_POST['badgeos_ob_quick_bulk_edit_action'] ) && $_POST['badgeos_ob_quick_bulk_edit_action'] == 'yes' ) {
    378377
     
    393392
    394393    if( isset( $_REQUEST[ 'post' ] ) && is_array( $_REQUEST[ 'post' ] ) && count( $_REQUEST[ 'post' ] ) > 0 ) {
    395         $post_ids = $_REQUEST[ 'post' ];
     394        $post_ids = array_map( 'sanitize_text_field', $_REQUEST[ 'post' ] );
    396395        if( is_array( $post_ids ) &&  count( $post_ids ) > 0 ) {
    397396            foreach( $post_ids as $post_id ) {
    398                
     397
     398
    399399                if( isset( $_REQUEST['open_badge_enable_baking']  ) ) {
    400                     badgeos_utilities::update_post_meta( $post_id, '_open_badge_enable_baking', $_REQUEST['open_badge_enable_baking'] == '1'?'true':'false' );
     400                    $open_badge_enable_baking = sanitize_text_field( $_REQUEST['open_badge_enable_baking'] ) == '1' ? 'true' : 'false';
     401                    badgeos_utilities::update_post_meta( $post_id, '_open_badge_enable_baking', $open_badge_enable_baking  );
    401402                }
    402403
    403                 badgeos_utilities::update_post_meta( $post_id, '_open_badge_criteria', get_permalink( $post_id ) );
     404                badgeos_utilities::update_post_meta( $post_id, '_open_badge_criteria', get_permalink( absint( $post_id ) ) );
    404405               
    405406                if( isset( $_REQUEST['open_badge_include_evidence']  ) ) {
    406                     badgeos_utilities::update_post_meta( $post_id, '_open_badge_include_evidence', $_REQUEST['open_badge_include_evidence'] == '1'?'true':'false' );
     407                    $open_badge_include_evidence = sanitize_text_field( $_REQUEST['open_badge_include_evidence'] ) == '1' ? 'true': 'false';
     408                    badgeos_utilities::update_post_meta( $post_id, '_open_badge_include_evidence', $open_badge_include_evidence );
    407409                }
    408410
  • badgeos/trunk/includes/open_badge/ob-metabox.php

    r2562800 r2765251  
    155155       
    156156        $msg = array( 'type' => 'error', 'result' => 0,'message' => __( 'We are unable to serve ur request. Please, try back later.', 'badgeos' ) );
    157        
     157        $table_name = $wpdb->prefix.'badgeos_achievements';
    158158        switch( $type ) {
    159159
    160160
    161161            case "issued_on":
    162                 $recs = $wpdb->get_results( "select * from ".$wpdb->prefix."badgeos_achievements where entry_id='".$entry_id."'" );
     162                $recs = $wpdb->get_results( "SELECT * FROM {$table_name} WHERE entry_id={$entry_id}" );
    163163                if( count( $recs ) > 0 ) {
    164164                    $msg = array( 'type' => 'success', 'result' => 1, 'message' => __( 'Issued On ', 'badgeos' ).date( $date_format.' '.$time_format, strtotime($recs[0]->date_earned) ) );
     
    168168                break;
    169169            case "issued_by":
    170                 $recs = $wpdb->get_results( "select * from ".$wpdb->prefix."badgeos_achievements where entry_id='".$entry_id."'" );
     170                $recs = $wpdb->get_results( "SELECT * FROM {$table_name} WHERE entry_id={$entry_id}" );
    171171                if( count( $recs ) > 0 ) {
    172172                    $site_title = get_bloginfo( 'name' );
     
    177177                break;
    178178            case "issued_using":
    179                 $recs = $wpdb->get_results( "select * from ".$wpdb->prefix."badgeos_achievements where entry_id='".$entry_id."'" );
     179                $recs = $wpdb->get_results( "SELECT * FROM {$table_name} WHERE entry_id={$entry_id}" );
    180180                if( count( $recs ) > 0 ) {
    181181                    $site_title = get_bloginfo( 'name' );
     
    186186                break;
    187187            case "issued_to":
    188                 $recs = $wpdb->get_results( "select * from ".$wpdb->prefix."badgeos_achievements where entry_id='".$entry_id."'" );
     188                $recs = $wpdb->get_results( "SELECT * FROM {$table_name} WHERE entry_id={$entry_id}" );
    189189                if( count( $recs ) > 0 ) {
    190190                    $user_id = $recs[0]->user_id;
     
    202202                break;
    203203            case "expiry_date":
    204                 $recs = $wpdb->get_results( "select * from ".$wpdb->prefix."badgeos_achievements where entry_id='".$entry_id."'" );
     204                $recs = $wpdb->get_results( "SELECT * FROM {$table_name} WHERE entry_id={$entry_id}" );
    205205                $open_badge_expiration       = ( badgeos_utilities::get_post_meta( $recs[0]->ID, '_open_badge_expiration', true ) ? badgeos_utilities::get_post_meta( $recs[0]->ID, '_open_badge_expiration', true ) : '0' );
    206206                $open_badge_expiration_type  = ( badgeos_utilities::get_post_meta( $recs[0]->ID, '_open_badge_expiration_type', true ) ? badgeos_utilities::get_post_meta( $recs[0]->ID, '_open_badge_expiration_type', true ) : '0' );
    207207
    208208                if( intval( $open_badge_expiration ) > 0 ) {
    209                     $recs = $wpdb->get_results( "select * from ".$wpdb->prefix."badgeos_achievements where entry_id='".$entry_id."'" );
     209                    $recs = $wpdb->get_results( "SELECT * FROM {$table_name} WHERE entry_id={$entry_id}" );
    210210                    if( count( $recs ) > 0 ) {
    211211                        $badge_date = strtotime( $recs[ 0 ]->date_earned );
     
    225225                    }
    226226                } else {
    227                     $recs = $wpdb->get_results( "select * from ".$wpdb->prefix."badgeos_achievements where entry_id='".$entry_id."'" );
     227                    $recs = $wpdb->get_results( "SELECT * FROM {$table_name} WHERE entry_id={$entry_id}" );
    228228                    if( count( $recs ) > 0 ) {
    229229                        $msg = array( 'type' => 'success', 'result' => 1, 'message' => __( 'No Expiry Date', 'badgeos' ) );
  • badgeos/trunk/includes/p2p/p2p-admin/box-factory.php

    r1759600 r2765251  
    9494            // Loop through the hidden fields instead of through $_POST['p2p_meta'] because empty checkboxes send no data.
    9595            foreach ( $_POST['p2p_connections'] as $p2p_id ) {
    96                 $data = scbForms::get_value( array( 'p2p_meta', $p2p_id ), $_POST, array() );
     96                $data = scbForms::get_value( array( 'p2p_meta', $p2p_id ), array_map( 'sanitize_text_field', $_POST ), array() );
    9797
    9898                $connection = p2p_get_connection( $p2p_id );
     
    129129        check_ajax_referer( P2P_BOX_NONCE, 'nonce' );
    130130
    131         $ctype = p2p_type( $_REQUEST['p2p_type'] );
     131        $ctype = p2p_type( sanitize_text_field($_REQUEST['p2p_type']) );
    132132        if ( !$ctype || !isset( $this->queue[$ctype->name] ) )
    133133            die(0);
    134134
    135         $directed = $ctype->set_direction( $_REQUEST['direction'] );
     135        $directed = $ctype->set_direction(sanitize_text_field( $_REQUEST['direction']) );
    136136        if ( !$directed )
    137137            die(0);
    138138
    139         $post = get_post( $_REQUEST['from'] );
     139        $post = get_post( sanitize_text_field($_REQUEST['from']) );
    140140        if ( !$post )
    141141            die(0);
     
    146146        $box = $this->create_box( $directed );
    147147
    148         $method = 'ajax_' . $_REQUEST['subaction'];
     148        $method = 'ajax_' . sanitize_text_field($_REQUEST['subaction']);
    149149
    150150        $box->$method();
  • badgeos/trunk/includes/p2p/p2p-admin/box.php

    r1759600 r2765251  
    244244
    245245        $args = array(
    246             'post_title' => $_POST['post_title'],
     246            'post_title' => sanitize_text_field( $_POST['post_title'] ),
    247247            'post_author' => get_current_user_id(),
    248248            'post_type' => $this->ctype->get( 'opposite', 'side' )->first_post_type()
     
    257257
    258258    public function ajax_connect() {
    259         $this->safe_connect( $_POST['to'] );
     259        $this->safe_connect( sanitize_text_field( $_POST['to'] ) );
    260260    }
    261261
     
    281281
    282282    public function ajax_disconnect() {
    283         p2p_delete_connection( $_POST['p2p_id'] );
     283        p2p_delete_connection( sanitize_text_field( $_POST['p2p_id'] ) );
    284284
    285285        $this->refresh_candidates();
     
    287287
    288288    public function ajax_clear_connections() {
    289         $r = $this->ctype->disconnect( $_POST['from'], 'any' );
     289        $r = $this->ctype->disconnect( sanitize_text_field( $_POST['from'] ), 'any' );
    290290
    291291        self::maybe_send_error( $r );
     
    311311    private function refresh_candidates() {
    312312        die( json_encode( $this->candidate_rows(
    313             $_REQUEST['from'], $_REQUEST['paged'], $_REQUEST['s'] ) ) );
     313            sanitize_text_field($_REQUEST['from']), sanitize_text_field($_REQUEST['paged']), sanitize_text_field($_REQUEST['s']) ) ) );
    314314    }
    315315
  • badgeos/trunk/includes/p2p/p2p-admin/dropdown.php

    r1759600 r2765251  
    3535            'choices' => self::get_choices( $this->ctype ),
    3636            'text' => $title,
    37         ), $_GET );
     37        ), array_map( 'sanitize_text_field', $_GET  ) );
    3838    }
    3939
     
    4444        $args = array();
    4545
    46         $tmp = reset( $_GET['p2p'] );
     46        $tmp = reset( sanitize_text_field( $_GET['p2p'] ) );
    4747
    48         $args['connected_type'] = key( $_GET['p2p'] );
     48        $args['connected_type'] = key( sanitize_text_field( $_GET['p2p'] ) );
    4949
    5050        list( $args['connected_direction'], $args['connected_items'] ) = each( $tmp );
  • badgeos/trunk/includes/p2p/p2p-admin/tools-page.php

    r2384705 r2765251  
    3535        global $wpdb;
    3636
    37         $old_p2p_type = $_POST['old_p2p_type'];
    38         $new_p2p_type = $_POST['new_p2p_type'];
     37        $old_p2p_type = sanitize_text_field( $_POST['old_p2p_type'] );
     38        $new_p2p_type = sanitize_text_field( $_POST['new_p2p_type'] );
    3939
    4040        if ( !p2p_type( $new_p2p_type ) ) {
  • badgeos/trunk/includes/p2p/scb/AdminPage.php

    r2303506 r2765251  
    205205        }
    206206
    207         $new_data = wp_array_slice_assoc( $_POST, array_keys( $this->options->get_defaults() ) );
     207        $new_data = wp_array_slice_assoc( array_map( 'sanitize_text_field', $_POST ), array_keys( $this->options->get_defaults() ) );
    208208
    209209        $new_data = stripslashes_deep( $new_data );
  • badgeos/trunk/includes/p2p/scb/Forms.php

    r2548255 r2765251  
    204204    static function validate_post_data( $fields, $data = null, $to_update = array() ) {
    205205        if ( null === $data ) {
    206             $data = stripslashes_deep( $_POST );
     206            $data = stripslashes_deep( array_map( 'sanitize_text_field', $_POST ));
    207207        }
    208208
  • badgeos/trunk/includes/points/award-steps-ui.php

    r2687784 r2765251  
    277277        'num_of_years'              => badgeos_utilities::get_post_meta( $step_id, '_badgeos_num_of_years', true ),
    278278        'x_number_of_users'         => badgeos_utilities::get_post_meta( $step_id, '_badgeos_x_number_of_users', true ),
    279     'x_number_of_users_date'    => badgeos_utilities::get_post_meta( $step_id, '_badgeos_x_number_of_users_date', true ),
     279        'x_number_of_users_date'    => badgeos_utilities::get_post_meta( $step_id, '_badgeos_x_number_of_users_date', true ),
    280280        'num_of_months'             => badgeos_utilities::get_post_meta( $step_id, '_badgeos_num_of_months', true ),
    281281        'num_of_days'               => badgeos_utilities::get_post_meta( $step_id, '_badgeos_num_of_days', true ),
     
    330330    ) );
    331331
     332    $achievement_post_id = isset( $_POST['achievement_id'] ) ? absint( $_POST['achievement_id'] ) : 0;
    332333    /**
    333334     * Output the edit step html to insert into the Steps metabox
    334335     */
    335     badgeos_award_steps_ui_html( $step_id, $_POST['achievement_id'] );
     336    badgeos_award_steps_ui_html( $step_id, $achievement_post_id );
    336337
    337338    /**
    338339     * Grab the post object for our Achievement
    339340     */
    340     $achievement = badgeos_utilities::badgeos_get_post( $_POST['achievement_id'] );
     341    $achievement = badgeos_utilities::badgeos_get_post( $achievement_post_id );
    341342
    342343    /**
     
    347348        array(
    348349            'from' => $step_id,
    349             'to'   => $_POST['achievement_id'],
     350            'to'   => $achievement_post_id,
    350351            'meta' => array(
    351352                'date' => current_time( 'mysql' )
     
    373374function badgeos_delete_award_step_ajax_handler() {
    374375
    375     wp_delete_post( $_POST['step_id'] );
     376    wp_delete_post( absint( $_POST['step_id'] ) );
    376377    die;
    377378}
     
    400401         */
    401402        $new_titles = array();
    402 
     403        $steps = $_POST['steps'];
    403404        /**
    404405         * Loop through each of the created steps
    405406         */
    406         foreach ( $_POST['steps'] as $key => $step ) {
     407        foreach ( $steps as $key => $step ) {
    407408
    408409            /**
    409410             * Grab all of the relevant values of that step
    410411             */
    411             $step_id            = $step['step_id'];
    412             $required_count     = ( ! empty( $step['required_count'] ) ) ? $step['required_count'] : 1;
    413             $point_value        = ( ! empty( $step['point_value'] ) ) ? $step['point_value'] : 0;
    414             $trigger_type       = $step['trigger_type'];
    415             $num_of_years       = $step['num_of_years'];
    416             $x_number_of_users  = $step['x_number_of_users'];
    417             $num_of_months      = $step['num_of_months'];
    418             $num_of_days        = $step['num_of_days'];
    419             $visit_post         = $step['visit_post'];
    420             $visit_page         = $step['visit_page'];
    421 
    422             $achievement_type = $step['achievement_type'];
     412            $step_id            = sanitize_text_field( $step['step_id'] );
     413            $required_count     = ( ! empty( $step['required_count'] ) ) ? sanitize_text_field( $step['required_count'] ) : 1;
     414            $point_value        = ( ! empty( $step['point_value'] ) ) ? sanitize_text_field( $step['point_value'] ) : 0;
     415            $trigger_type       = sanitize_text_field( $step['trigger_type'] );
     416            $num_of_years       = sanitize_text_field( $step['num_of_years'] );
     417            $x_number_of_users  = sanitize_text_field( $step['x_number_of_users'] );
     418            $num_of_months      = sanitize_text_field( $step['num_of_months'] );
     419            $num_of_days        = sanitize_text_field( $step['num_of_days'] );
     420            $visit_post         = sanitize_text_field( $step['visit_post'] );
     421            $visit_page         = sanitize_text_field( $step['visit_page'] );
     422
     423            $achievement_type = sanitize_text_field( $step['achievement_type'] );
    423424
    424425            $badgeos_subtrigger_id = '';
     
    426427            $badgeos_fields_data = '';
    427428            if( isset( $step['badgeos_subtrigger_id'] ) ) {
    428                 $badgeos_subtrigger_id      = $step['badgeos_subtrigger_id'];
     429                $badgeos_subtrigger_id      = sanitize_text_field( $step['badgeos_subtrigger_id'] );
    429430            }
    430431            if( isset( $step['badgeos_subtrigger_value'] ) ) {
    431                 $badgeos_subtrigger_value   = $step['badgeos_subtrigger_value'];
     432                $badgeos_subtrigger_value   = sanitize_text_field( $step['badgeos_subtrigger_value'] );
    432433            }
    433434            if( isset( $step['badgeos_fields_data'] ) ) {
    434                 $badgeos_fields_data        = $step['badgeos_fields_data'];
     435                $badgeos_fields_data        = sanitize_text_field( $step['badgeos_fields_data'] );
    435436            }
    436437
     
    604605     * Grab our achievement type from the AJAX request
    605606     */
    606     $achievement_type = $_REQUEST['achievement_type'];
    607     $exclude_posts = (array) $_REQUEST['excluded_posts'];
    608     $requirements = badgeos_get_award_step_requirements( $_REQUEST['step_id'] );
     607    $achievement_type = sanitize_text_field( $_REQUEST['achievement_type'] );
     608    $exclude_posts = array_map( 'sanitize_text_field', (array) $_REQUEST['excluded_posts'] );
     609    $requirements = badgeos_get_award_step_requirements( sanitize_text_field($_REQUEST['step_id']) );
    609610
    610611    /**
  • badgeos/trunk/includes/points/deduct-steps-ui.php

    r2687784 r2765251  
    317317        'num_of_years'              => badgeos_utilities::get_post_meta( $step_id, '_badgeos_num_of_years', true ),
    318318        'x_number_of_users'         => badgeos_utilities::get_post_meta( $step_id, '_badgeos_x_number_of_users', true ),
    319     'x_number_of_users_date'    => badgeos_utilities::get_post_meta( $step_id, '_badgeos_x_number_of_users_date', true ),
     319        'x_number_of_users_date'    => badgeos_utilities::get_post_meta( $step_id, '_badgeos_x_number_of_users_date', true ),
    320320        'remove_rank'               => badgeos_utilities::get_post_meta( $step_id, '_badgeos_remove_rank', true ),
    321321        'remove_achivement'         => badgeos_utilities::get_post_meta( $step_id, '_badgeos_remove_achivement', true ),
     
    369369    ) );
    370370
     371    $achievement_post_id = isset( $_POST['achievement_id'] ) ? absint( $_POST['achievement_id'] ) : 0;
    371372    /**
    372373     * Output the edit step html to insert into the Steps metabox
    373374     */
    374     badgeos_deduct_steps_ui_html( $step_id, $_POST['achievement_id'] );
     375    badgeos_deduct_steps_ui_html( $step_id, $achievement_post_id );
    375376
    376377    /**
    377378     * Grab the post object for our Achievement
    378379     */
    379     $achievement = badgeos_utilities::badgeos_get_post( $_POST['achievement_id'] );
     380    $achievement = badgeos_utilities::badgeos_get_post( $achievement_post_id );
    380381
    381382    /**
     
    386387        array(
    387388            'from' => $step_id,
    388             'to'   => $_POST['achievement_id'],
     389            'to'   => $achievement_post_id,
    389390            'meta' => array(
    390391                'date' => current_time( 'mysql' )
     
    411412 */
    412413function badgeos_delete_deduct_step_ajax_handler() {
    413     wp_delete_post( $_POST['step_id'] );
     414    wp_delete_post( absint( $_POST['step_id'] ) );
    414415    die;
    415416}
     
    438439         */
    439440        $new_titles = array();
     441        $steps = $_POST['steps'];
    440442
    441443        /**
    442444         * Loop through each of the created steps
    443445         */
    444         foreach ( $_POST['steps'] as $key => $step ) {
     446        foreach ( $steps as $key => $step ) {
    445447
    446448            /**
    447449             * Grab all of the relevant values of that step
    448450             */
    449             $step_id          = $step['step_id'];
    450             $required_count   = ( ! empty( $step['required_count'] ) ) ? $step['required_count'] : 1;
    451             $point_value   = ( ! empty( $step['point_value'] ) ) ? $step['point_value'] : 0;
    452             $visit_post         = $step['visit_post'];
    453             $visit_page         = $step['visit_page'];
    454             $num_of_years       = $step['num_of_years'];
    455             $remove_achivement  = $step['remove_achivement'];
    456             $remove_rank        = $step['remove_rank'];
    457             $x_number_of_users  = $step['x_number_of_users'];
    458             $num_of_days        = $step['num_of_days'];         
    459             $num_of_months      = $step['num_of_months'];           
    460             $trigger_type       = $step['trigger_type'];
    461             $achievement_type   = $step['achievement_type'];
     451            $step_id            = sanitize_text_field( $step['step_id'] );
     452            $required_count     = ( ! empty( $step['required_count'] ) ) ? sanitize_text_field( $step['required_count'] ) : 1;
     453            $point_value        = ( ! empty( $step['point_value'] ) ) ? sanitize_text_field( $step['point_value'] ) : 0;
     454            $visit_post         = sanitize_text_field( $step['visit_post'] );
     455            $visit_page         = sanitize_text_field( $step['visit_page'] );
     456            $num_of_years       = sanitize_text_field( $step['num_of_years'] );
     457            $remove_achivement  = sanitize_text_field( $step['remove_achivement'] );
     458            $remove_rank        = sanitize_text_field( $step['remove_rank'] );
     459            $x_number_of_users  = sanitize_text_field( $step['x_number_of_users'] );
     460            $num_of_days        = sanitize_text_field( $step['num_of_days'] );         
     461            $num_of_months      = sanitize_text_field( $step['num_of_months'] );           
     462            $trigger_type       = sanitize_text_field( $step['trigger_type'] );
     463            $achievement_type   = sanitize_text_field( $step['achievement_type'] );
    462464
    463465            $badgeos_subtrigger_id = '';
     
    465467            $badgeos_fields_data = '';
    466468            if( isset( $step['badgeos_subtrigger_id'] ) )
    467                 $badgeos_subtrigger_id      = $step['badgeos_subtrigger_id'];
     469                $badgeos_subtrigger_id      = sanitize_text_field( $step['badgeos_subtrigger_id'] );
    468470            if( isset( $step['badgeos_subtrigger_value'] ) )
    469                 $badgeos_subtrigger_value   = $step['badgeos_subtrigger_value'];
     471                $badgeos_subtrigger_value   = sanitize_text_field( $step['badgeos_subtrigger_value'] );
    470472            if( isset( $step['badgeos_fields_data'] ) )
    471                 $badgeos_fields_data        = $step['badgeos_fields_data'];
     473                $badgeos_fields_data        = sanitize_text_field( $step['badgeos_fields_data'] );
    472474
    473475            /**
     
    655657     * Grab our achievement type from the AJAX request
    656658     */
    657     $achievement_type = $_REQUEST['achievement_type'];
    658     $exclude_posts = (array) $_REQUEST['excluded_posts'];
    659     $requirements = badgeos_get_deduct_step_requirements( $_REQUEST['step_id'] );
     659    $achievement_type = sanitize_text_field( $_REQUEST['achievement_type'] );
     660    $exclude_posts = array_map( 'sanitize_text_field', (array) $_REQUEST['excluded_posts'] );
     661    $requirements = badgeos_get_deduct_step_requirements( sanitize_text_field($_REQUEST['step_id']) );
    660662
    661663    /**
  • badgeos/trunk/includes/points/meta-boxes.php

    r2384705 r2765251  
    2626     * Setup our $post_id, if available
    2727     */
    28     $post_id = isset( $_GET['post'] ) ? $_GET['post'] : 0;
     28    $post_id = isset( $_GET['post'] ) ? sanitize_text_field( $_GET['post'] ): 0;
    2929
    3030    /**
  • badgeos/trunk/includes/points/point-functions.php

    r2384705 r2765251  
    115115   
    116116    $points         = badgeos_utilities::get_post_meta( $achievement_id, '_badgeos_points', true );
    117     $point_value    = $points['_badgeos_points'];
    118     $points_type    = $points['_badgeos_points_type'];
     117    $point_value    = isset( $points['_badgeos_points'] ) ? $points['_badgeos_points'] : 0;
     118    $points_type    = isset( $points['_badgeos_points_type'] ) ? $points['_badgeos_points_type'] : 0;
    119119    if( $points_type != 0 ) {
    120120        $earned_credits = badgeos_get_points_by_type( $points_type, $user_id );
     
    171171    } else {
    172172        if ( $admin_id )
    173             $log_message = sprintf( __( '%1$s awarded %2$s %3$s points for a new total of %4$s points', 'badgeos' ), $admin->user_login, $user->user_login, number_format( $new_points ), number_format( $total_points ) );
     173            $log_message = sprintf( __( '%1$s awarded %2$s %3$s points for a new total of %4$s points', 'badgeos' ), $admin->user_login, $user->user_login, number_format( absint($new_points) ), number_format( absint($new_points) ) );
    174174        else
    175175            $log_message = sprintf( __( '%1$s earned %2$s points from %3$s.', 'badgeos' ), $user->user_login, number_format( $new_points ), $point_type_title );
  • badgeos/trunk/includes/points/point-rules-engine.php

    r2687784 r2765251  
    772772                                            $table_name = $wpdb->prefix . "badgeos_achievements";
    773773                                            if($wpdb->get_var("show tables like '$table_name'") == $table_name) {
    774                                                 $where = " where user_id='".intval($user_id)."' and entry_id = '".intval($item->entry_id)."'";
    775                                                 $wpdb->get_results('delete from '.$wpdb->prefix.'badgeos_achievements '.$where.' limit 1' );
     774                                                $where = " where user_id={$user_id} and entry_id = {$item->entry_id}";
     775                                                $wpdb->get_results("delete from '.$wpdb->prefix.'badgeos_achievements {$where} limit 1" );
    776776                                            }
    777777                                            badgeos_decrement_user_trigger_count( $user_id, $child->ID, $del_ach_id );
     
    12001200            }
    12011201
    1202             $strQuery = "select * from ".$wpdb->prefix . "badgeos_points where step_id='".$step_id."' and user_id='".$user_id."' and Year(dateadded)='".date('Y')."'";
     1202            $strQuery = "select * from ".$wpdb->prefix . "badgeos_points where step_id={$step_id} and user_id={$user_id} and Year(dateadded)='".date('Y')."'";
    12031203            $points = $wpdb->get_results( $strQuery );
    12041204            if( count( $points ) > 0 ) {
     
    12621262            $count = absint( badgeos_utilities::get_post_meta( $step_id, '_badgeos_count', true ) );
    12631263            if( intval( $x_number_of_users ) > 0 ) {
    1264                 $strQuery = "select id from ".$wpdb->prefix . "badgeos_points where step_id='".$step_id."'";
     1264                $strQuery = "select id from ".$wpdb->prefix . "badgeos_points where step_id={$step_id}";
    12651265                $total_points = $wpdb->get_results( $strQuery );
    12661266                if( count( $total_points ) > intval( $x_number_of_users ) ) {
     
    12691269            }
    12701270
    1271             $strQuery = "select * from ".$wpdb->prefix . "badgeos_points where step_id='".$step_id."' and user_id='".$user_id."'";
     1271            $strQuery = "select * from ".$wpdb->prefix . "badgeos_points where step_id={$step_id} and user_id={$user_id}";
    12721272            $my_points = $wpdb->get_results( $strQuery );
    12731273            if( count( $my_points ) >= intval( $count ) ) {
     
    13871387            $reg_date = strtotime( get_userdata($user_id)->user_registered );
    13881388            $num_of_months = badgeos_utilities::get_post_meta( absint( $step_id ), '_badgeos_num_of_months', true );
    1389             $strQuery = "select * from ".$wpdb->prefix . "badgeos_points where step_id='".$step_id."' and user_id='".$user_id."' order by actual_date_earned desc limit 1";
     1389            $strQuery = "select * from ".$wpdb->prefix . "badgeos_points where step_id={$step_id} and user_id={$user_id} order by actual_date_earned desc limit 1";
    13901390            $points = $wpdb->get_results( $strQuery );
    13911391            $return = false;
     
    14541454            $reg_date = strtotime( get_userdata($user_id)->user_registered );
    14551455            $num_of_days = badgeos_utilities::get_post_meta( absint( $step_id ), '_badgeos_num_of_days', true );
    1456             $strQuery = "select * from ".$wpdb->prefix . "badgeos_points where step_id='".$step_id."' and user_id='".$user_id."' order by actual_date_earned desc limit 1";
     1456            $strQuery = "select * from ".$wpdb->prefix . "badgeos_points where step_id={$step_id} and user_id={$user_id} order by actual_date_earned desc limit 1";
    14571457            $points = $wpdb->get_results( $strQuery );
    14581458            $return = false;
  • badgeos/trunk/includes/points/triggers.php

    r2687784 r2765251  
    124124     * Setup all our globals
    125125     */
    126     global $user_ID, $blog_id, $wpdb;
     126    global $blog_id, $wpdb;
    127127
    128128    $site_id = $blog_id;
     
    192192     * Setup all our globals
    193193     */
    194     global $user_ID, $blog_id, $wpdb;
     194    global $blog_id, $wpdb;
    195195
    196196    $site_id = $blog_id;
     
    266266     * Setup all our globals
    267267     */
    268     global $user_ID, $blog_id, $wpdb;
     268    global $blog_id, $wpdb;
    269269
    270270    $site_id = $blog_id;
     
    376376     * Setup all our globals
    377377     */
    378     global $user_ID, $blog_id, $wpdb;
     378    global $blog_id, $wpdb;
    379379
    380380    $site_id = $blog_id;
  • badgeos/trunk/includes/ranks/meta-boxes.php

    r2392364 r2765251  
    2323     * Setup our $post_id, if available
    2424     */
    25     $post_id = isset( $_GET['post'] ) ? $_GET['post'] : 0;
     25    $post_id = isset( $_GET['post'] ) ? sanitize_text_field( $_GET['post'] ): 0;
    2626
    2727    /**
     
    9797     * Setup our $post_id, if available
    9898     */
    99     $post_id = isset( $_GET['post'] ) ? $_GET['post'] : 0;
     99    $post_id = isset( $_GET['post'] ) ? sanitize_text_field( $_GET['post'] ): 0;
    100100   
    101101    $cmb_obj = new_cmb2_box( array(
     
    155155     * Setup our $post_id, if available
    156156     */
    157     $post_id = isset( $_GET['post'] ) ? $_GET['post'] : 0;
     157    $post_id = isset( $_GET['post'] ) ? sanitize_text_field( $_GET['post'] ): 0;
    158158    $priority = 1;
    159159
  • badgeos/trunk/includes/ranks/rank-functions.php

    r2687784 r2765251  
    13111311    }
    13121312
    1313     $rank_id = ( isset( $_POST['rankID'] ) ?  $_POST['rankID'] : '' );
    1314     $user_id = ( isset( $_POST['userID'] ) ?  $_POST['userID'] : '' );
     1313    $rank_id = ( isset( $_POST['rankID'] ) ?  sanitize_text_field( $_POST['rankID'] ) : '' );
     1314    $user_id = ( isset( $_POST['userID'] ) ?  sanitize_text_field( $_POST['userID'] ) : '' );
    13151315
    13161316    if( empty( $rank_id ) || empty( $user_id ) ) {
     
    13191319    }
    13201320
    1321     if( badgeos_revoke_rank_from_user_account( absint( $user_id ), absint( $rank_id ) ) ) {
     1321    if( badgeos_revoke_rank_from_user_account( $user_id, $rank_id ) ) {
    13221322        echo 'true';
    13231323        exit;
     
    13391339    }
    13401340
    1341     $rank_id = ( isset( $_POST['rank_id'] ) ?  $_POST['rank_id'] : '' );
    1342     $user_id = ( isset( $_POST['user_id'] ) ?  $_POST['user_id'] : '' );
     1341    $rank_id = ( isset( $_POST['rank_id'] ) ?  sanitize_text_field( $_POST['rank_id'] ) : '' );
     1342    $user_id = ( isset( $_POST['user_id'] ) ?  sanitize_text_field( $_POST['user_id'] ) : '' );
    13431343
    13441344    if( empty( $rank_id ) || empty( $user_id ) ) {
     
    13501350        'user_id'           => $user_id,
    13511351        'site_id'           => get_current_blog_id(),
    1352         'rank_id'           => (int) $rank_id,
     1352        'rank_id'           => $rank_id,
    13531353        'this_trigger'      => 'admin_awarded',
    13541354        'credit_id'         => 0,
     
    13721372    }
    13731373
    1374     $user_id = ( isset( $_POST['user_id'] ) ? $_POST['user_id'] : '' );
    1375     $selected = ( isset( $_POST['rank_filter'] ) ? $_POST['rank_filter'] : 'all' );
     1374    $user_id = ( isset( $_POST['user_id'] ) ? sanitize_text_field( $_POST['user_id'] ) : '' );
     1375    $selected = ( isset( $_POST['rank_filter'] ) ? sanitize_text_field( $_POST['rank_filter'] ) : 'all' );
    13761376
    13771377    if( empty( $selected ) ) {
     
    14771477    }
    14781478
    1479     $user_id = ( isset( $_GET['user_id'] ) ? $_GET['user_id'] : 0 );
    1480     $rank_id = ( isset( $_GET['rank_id'] ) ? $_GET['rank_id'] : 0 );
     1479    $user_id = ( isset( $_GET['user_id'] ) ? absint( $_GET['user_id'] ) : 0 );
     1480    $rank_id = ( isset( $_GET['rank_id'] ) ? absint( $_GET['rank_id'] ) : 0 );
    14811481
    14821482    if( $user_id != 0 && $rank_id != 0 ) {
     
    14851485            'user_id'           => $user_id,
    14861486            'site_id'           => get_current_blog_id(),
    1487             'rank_id'           => (int) $rank_id,
     1487            'rank_id'           => $rank_id,
    14881488            'credit_id'         =>  0,
    14891489            'credit_amount'     => 0,
  • badgeos/trunk/includes/ranks/rank-steps-ui.php

    r2687784 r2765251  
    324324    ) );
    325325
     326    $badgeos_achievement_id = isset( $_POST['achievement_id'] ) ? absint( $_POST['achievement_id'] ) : 0;
    326327    /**
    327328     * Output the edit step html to insert into the Steps metabox
    328329     */
    329     badgeos_rank_req_steps_ui_html( $step_id, $_POST['achievement_id'] );
     330    badgeos_rank_req_steps_ui_html( $step_id, sanitize_text_field( $_POST['achievement_id'] ) );
    330331
    331332    /**
    332333     * Grab the post object for our Achievement
    333334     */
    334     $achievement = badgeos_utilities::badgeos_get_post( $_POST['achievement_id'] );
     335    $achievement = badgeos_utilities::badgeos_get_post( $badgeos_achievement_id );
    335336
    336337    /**
     
    341342        array(
    342343            'from' => $step_id,
    343             'to'   => $_POST['achievement_id'],
     344            'to'   => $badgeos_achievement_id,
    344345            'meta' => array(
    345346                'date' => current_time( 'mysql' )
     
    366367 */
    367368function badgeos_delete_rank_req_step_ajax_handler() {
    368     wp_delete_post( $_POST['step_id'] );
     369    wp_delete_post( absint( $_POST['step_id'] ) );
    369370    die;
    370371}
     
    393394         */
    394395        $new_titles = array();
     396        $steps = $_POST['steps'];
    395397
    396398        /**
    397399         * Loop through each of the created steps
    398400         */
    399         foreach ( $_POST['steps'] as $key => $step ) {
     401        foreach ( $steps as $key => $step ) {
    400402
    401403            /**
    402404             * Grab all of the relevant values of that step
    403405             */
    404             $step_id            = $step['step_id'];
    405             $required_count     = ( ! empty( $step['required_count'] ) ) ? $step['required_count'] : 1;
     406            $step_id            = sanitize_text_field( $step['step_id'] );
     407            $required_count     = ( ! empty( $step['required_count'] ) ) ? sanitize_text_field( $step['required_count'] ): 1;
    406408            //$credit_value     = ( ! empty( $step['credit_value'] ) ) ? $step['credit_value'] : 0;
    407             $trigger_type       = $step['trigger_type'];
    408             $visit_post         = $step['visit_post'];
    409             $visit_page         = $step['visit_page'];
    410             $num_of_years       = $step['num_of_years'];
    411             $x_number_of_users  = $step['x_number_of_users'];
     409            $trigger_type       = sanitize_text_field( $step['trigger_type'] );
     410            $visit_post         = sanitize_text_field( $step['visit_post'] );
     411            $visit_page         = sanitize_text_field( $step['visit_page'] );
     412            $num_of_years       = sanitize_text_field( $step['num_of_years'] );
     413            $x_number_of_users  = sanitize_text_field( $step['x_number_of_users'] );
    412414           
    413             $num_of_months      = $step['num_of_months'];
    414             $num_of_days        = $step['num_of_days'];
     415            $num_of_months      = sanitize_text_field( $step['num_of_months'] );
     416            $num_of_days        = sanitize_text_field( $step['num_of_days'] );
    415417            $achievement_post = '';
    416418            if( array_key_exists( 'achievement_post', $step ) )
    417                 $achievement_post = $step['achievement_post'];
     419                $achievement_post = sanitize_text_field( $step['achievement_post'] );
    418420
    419421            $badgeos_subtrigger_id = '';
     
    421423            $badgeos_fields_data = '';
    422424            if( isset( $step['badgeos_subtrigger_id'] ) )
    423                 $badgeos_subtrigger_id      = $step['badgeos_subtrigger_id'];
     425                $badgeos_subtrigger_id      = sanitize_text_field( $step['badgeos_subtrigger_id'] );
    424426            if( isset( $step['badgeos_subtrigger_value'] ) )
    425                 $badgeos_subtrigger_value   = $step['badgeos_subtrigger_value'];
     427                $badgeos_subtrigger_value   = sanitize_text_field( $step['badgeos_subtrigger_value'] );
    426428            if( isset( $step['badgeos_fields_data'] ) )
    427                 $badgeos_fields_data        = $step['badgeos_fields_data'];
     429                $badgeos_fields_data        = sanitize_text_field( $step['badgeos_fields_data'] );
    428430
    429431            /**
     
    527529             * Update our relevant meta
    528530             */
    529             badgeos_utilities::update_post_meta( $step_id, '_badgeos_count',                 $required_count );
    530             badgeos_utilities::update_post_meta( $step_id, '_rank_trigger_type',             $trigger_type );
    531             badgeos_utilities::update_post_meta( $step_id, 'achievement_post',           $achievement_post );
    532             badgeos_utilities::update_post_meta( $step_id, '_badgeos_subtrigger_id',         $badgeos_subtrigger_id );
    533             badgeos_utilities::update_post_meta( $step_id, '_badgeos_rank_subtrigger_value',$badgeos_subtrigger_value );
    534             badgeos_utilities::update_post_meta( $step_id, '_badgeos_fields_data',       $badgeos_fields_data );
     531            badgeos_utilities::update_post_meta( $step_id, '_badgeos_count',                    $required_count );
     532            badgeos_utilities::update_post_meta( $step_id, '_rank_trigger_type',                $trigger_type );
     533            badgeos_utilities::update_post_meta( $step_id, 'achievement_post',                  $achievement_post );
     534            badgeos_utilities::update_post_meta( $step_id, '_badgeos_subtrigger_id',            $badgeos_subtrigger_id );
     535            badgeos_utilities::update_post_meta( $step_id, '_badgeos_rank_subtrigger_value',    $badgeos_subtrigger_value );
     536            badgeos_utilities::update_post_meta( $step_id, '_badgeos_fields_data',              $badgeos_fields_data );
    535537
    536538            /**
     
    574576     * Grab our achievement type from the AJAX request
    575577     */
    576     $achievement_type = $_REQUEST['achievement_type'];
    577     $exclude_posts = (array) $_REQUEST['excluded_posts'];
    578     $requirements = badgeos_get_rank_req_step_requirements( $_REQUEST['step_id'] );
     578    $achievement_type = sanitize_text_field($_REQUEST['achievement_type']);
     579    $exclude_posts = array_map( 'sanitize_text_field', (array) $_REQUEST['excluded_posts'] );
     580    $requirements = badgeos_get_rank_req_step_requirements( sanitize_text_field($_REQUEST['step_id']) );
    579581
    580582    /**
  • badgeos/trunk/includes/ranks/ranks-rules-engine.php

    r2687784 r2765251  
    141141        }
    142142
    143         $strQuery = "select * from ".$wpdb->prefix . "badgeos_ranks where rank_id='".$rank_id."' and user_id='".$user_id."' and Year(dateadded)='".date('Y')."'";
     143        $strQuery = "select * from ".$wpdb->prefix . "badgeos_ranks where rank_id={$rank_id} and user_id={$user_id} and Year(dateadded)='".date('Y')."'";
    144144        $ranks = $wpdb->get_results( $strQuery );
    145145        if( count( $ranks ) > 0 ) {
     
    202202        if( intval( $x_number_of_users ) > 0 ) {
    203203
    204             $strQuery = "select id from ".$wpdb->prefix . "badgeos_ranks where rank_id='".$rank_id."'";
     204            $strQuery = "select id from ".$wpdb->prefix . "badgeos_ranks where rank_id={$rank_id}";
    205205            $total_ranks = $wpdb->get_results( $strQuery );
    206206            if( count( $total_ranks ) > intval( $x_number_of_users ) ) {
     
    209209        }
    210210
    211         $strQuery = "select * from ".$wpdb->prefix . "badgeos_ranks where rank_id='".$rank_id."' and user_id='".$user_id."'";
     211        $strQuery = "select * from ".$wpdb->prefix . "badgeos_ranks where rank_id={$rank_id} and user_id={$user_id}";
    212212        $my_ranks = $wpdb->get_results( $strQuery );
    213213        if( count( $my_ranks ) >= intval( $count ) ) {
     
    623623            $reg_date = get_userdata($user_id)->user_registered;
    624624            $num_of_years = badgeos_utilities::get_post_meta( absint( $step_id ), '_badgeos_num_of_years', true );
    625             $strQuery = "select * from ".$wpdb->prefix . "badgeos_ranks where rank_id='".$step_id."' and user_id='".$user_id."' order by actual_date_earned desc limit 1";
     625            $strQuery = "select * from ".$wpdb->prefix . "badgeos_ranks where rank_id={$step_id} and user_id={$user_id} order by actual_date_earned desc limit 1";
    626626            $ranks = $wpdb->get_results( $strQuery );
    627627            $return = false;
     
    660660            $reg_date = strtotime( get_userdata($user_id)->user_registered );
    661661            $num_of_months = badgeos_utilities::get_post_meta( absint( $step_id ), '_badgeos_num_of_months', true );
    662             $strQuery = "select * from ".$wpdb->prefix . "badgeos_ranks where rank_id='".$step_id."' and user_id='".$user_id."' order by actual_date_earned desc limit 1";
     662            $strQuery = "select * from ".$wpdb->prefix . "badgeos_ranks where rank_id={$step_id} and user_id={$user_id} order by actual_date_earned desc limit 1";
    663663            $ranks = $wpdb->get_results( $strQuery );
    664664            $return = false;
     
    697697            $reg_date = strtotime( get_userdata($user_id)->user_registered );
    698698            $num_of_days = badgeos_utilities::get_post_meta( absint( $step_id ), '_badgeos_num_of_days', true );
    699             $strQuery = "select * from ".$wpdb->prefix . "badgeos_ranks where rank_id='".$step_id."' and user_id='".$user_id."' order by actual_date_earned desc limit 1";
     699            $strQuery = "select * from ".$wpdb->prefix . "badgeos_ranks where rank_id={$step_id} and user_id={$user_id} order by actual_date_earned desc limit 1";
    700700            $ranks = $wpdb->get_results( $strQuery );
    701701            $return = false;
  • badgeos/trunk/includes/ranks/triggers.php

    r2687784 r2765251  
    8080     * Setup all our globals
    8181     */
    82     global $user_ID, $blog_id, $wpdb;
     82    global $blog_id, $wpdb;
    8383
    8484    $site_id = $blog_id;
     
    152152     * Setup all our globals
    153153     */
    154     global $user_ID, $blog_id, $wpdb;
     154    global $blog_id, $wpdb;
    155155
    156156    $site_id = $blog_id;
  • badgeos/trunk/includes/rules-engine.php

    r2687784 r2765251  
    224224        }
    225225
    226         $strQuery = "select * from ".$wpdb->prefix . "badgeos_achievements where ID='".$achievement_id."' and user_id='".$user_id."' and Year(date_earned)='".date('Y')."'";
     226        $strQuery = "select * from ".$wpdb->prefix . "badgeos_achievements where ID={$achievement_id} and user_id={$user_id} and Year(date_earned)='".date('Y')."'";
    227227        $achievements = $wpdb->get_results( $strQuery );
    228228        if( count( $achievements ) > 0 ) {
     
    300300        $count = absint( badgeos_utilities::get_post_meta( $achievement_id, '_badgeos_count', true ) );
    301301        if( intval( $x_number_of_users ) > 0 ) {
    302             $strQuery = "select id from ".$wpdb->prefix . "badgeos_achievements where ID='".$achievement_id."'";
     302            $strQuery = "select id from ".$wpdb->prefix . "badgeos_achievements where ID={$achievement_id}";
    303303            $total_achievements = $wpdb->get_results( $strQuery );
    304             if( count( $total_achievements ) > intval( $x_number_of_users ) ) {
     304            if( count( $total_achievements ) >= intval( $x_number_of_users ) ) {
    305305                return false;
    306306            }
    307307        }
    308308
    309         $strQuery = "select * from ".$wpdb->prefix . "badgeos_achievements where ID='".$achievement_id."' and user_id='".$user_id."'";
     309        $strQuery = "select * from ".$wpdb->prefix . "badgeos_achievements where ID={$achievement_id} and user_id={$user_id}";
    310310        $my_achievements = $wpdb->get_results( $strQuery );
    311311        if( count( $my_achievements ) >= intval( $count ) ) {
     
    12671267            $reg_date = get_userdata($user_id)->user_registered;
    12681268            $num_of_years = badgeos_utilities::get_post_meta( absint( $step_id ), '_badgeos_num_of_years', true );
    1269             $strQuery = "select * from ".$wpdb->prefix . "badgeos_achievements where ID='".$step_id."' and user_id='".$user_id."' order by actual_date_earned desc limit 1";
     1269            $strQuery = "select * from ".$wpdb->prefix . "badgeos_achievements where ID={$step_id} and user_id={$user_id} order by actual_date_earned desc limit 1";
    12701270            $achivements = $wpdb->get_results( $strQuery );
    12711271            $return = false;
     
    13181318            $reg_date = strtotime( get_userdata($user_id)->user_registered );
    13191319            $num_of_months = badgeos_utilities::get_post_meta( absint( $step_id ), '_badgeos_num_of_months', true );
    1320             $strQuery = "select * from ".$wpdb->prefix . "badgeos_achievements where ID='".$step_id."' and user_id='".$user_id."' order by actual_date_earned desc limit 1";
     1320            $strQuery = "select * from ".$wpdb->prefix . "badgeos_achievements where ID={$step_id} and user_id={$user_id} order by actual_date_earned desc limit 1";
    13211321            $achivements = $wpdb->get_results( $strQuery );
    13221322           
     
    13701370            $reg_date = strtotime( get_userdata($user_id)->user_registered );
    13711371            $num_of_days = badgeos_utilities::get_post_meta( absint( $step_id ), '_badgeos_num_of_days', true );
    1372             $strQuery = "select * from ".$wpdb->prefix . "badgeos_achievements where ID='".$step_id."' and user_id='".$user_id."' order by actual_date_earned desc limit 1";
     1372            $strQuery = "select * from ".$wpdb->prefix . "badgeos_achievements where ID={$step_id} and user_id={$user_id} order by actual_date_earned desc limit 1";
    13731373            $achivements = $wpdb->get_results( $strQuery );
    13741374            $return = false;
  • badgeos/trunk/includes/shortcodes/badgeos_achievements_list.php

    r2687784 r2765251  
    210210    }
    211211
    212     global $user_ID;
    213212    extract( shortcode_atts( array(
    214213        'type'        => 'all',
     
    279278
    280279                    // If logged in
    281                     if ( $user_ID > 0 ) {
     280                    if ( $user_id > 0 ) {
    282281                        $badges .= '<option value="completed">' . sprintf( __( 'Completed %s', 'badgeos' ), $post_type_plural );
    283282                        $badges .= '<option value="not-completed">' . sprintf( __( 'Not Completed %s', 'badgeos' ), $post_type_plural );
     
    296295        if ( $show_search != 'false' ) {
    297296
    298             $search = isset( $_POST['achievements_list_search'] ) ? $_POST['achievements_list_search'] : '';
     297            $search = isset( $_POST['achievements_list_search'] ) ? sanitize_text_field( $_POST['achievements_list_search'] ) : '';
    299298            $badges .= '<div id="badgeos-achievements-search">';
    300299            $badges .= '<form id="achievements_list_search_go_form" class="achievements_list_search_go_form" action="'. get_permalink( get_the_ID() ) .'" method="post">';
  • badgeos/trunk/includes/shortcodes/badgeos_ranks.php

    r2384705 r2765251  
    148148    }
    149149
    150    
    151 
    152     global $user_ID;
    153150    extract( shortcode_atts( array(
    154151        'types'   => 'all',
     
    192189    if ( $show_search != 'false' ) {
    193190
    194         $search = isset( $_POST['rank_lists_list_search'] ) ? $_POST['rank_lists_list_search'] : '';
     191        $search = isset( $_POST['rank_lists_list_search'] ) ? sanitize_text_field( $_POST['rank_lists_list_search'] ) : '';
    195192        $ranks_html .= '<div id="badgeos-ranks-search">';
    196193        $ranks_html .= '<form id="rank_lists_list_search_go_form" class="rank_lists_list_search_go_form" action="'. get_permalink( get_the_ID() ) .'" method="post">';
  • badgeos/trunk/includes/shortcodes/badgeos_user_earned_achievements.php

    r2384705 r2765251  
    189189        return '';
    190190    }
    191 
    192     global $user_ID;
    193191
    194192    $passed_user_id = get_current_user_id();
     
    264262    if ( $show_search != 'false' ) {
    265263
    266         $search = isset( $_POST['achievements_list_search'] ) ? $_POST['achievements_list_search'] : '';
     264        $search = isset( $_POST['achievements_list_search'] ) ? sanitize_text_field( $_POST['achievements_list_search'] ) : '';
    267265        $badges .= '<div id="badgeos-achievements-search">';
    268266        $badges .= '<form id="earned_achievements_list_search_go_form" class="earned_achievements_list_search_go_form" action="'. get_permalink( get_the_ID() ) .'" method="post">';
  • badgeos/trunk/includes/shortcodes/badgeos_user_earned_points.php

    r2384705 r2765251  
    8686    }
    8787
    88     global $user_ID;
    8988    extract( shortcode_atts( array(
    9089        'point_type'  => '',
  • badgeos/trunk/includes/shortcodes/badgeos_user_earned_ranks.php

    r2384705 r2765251  
    158158    }
    159159
    160     global $user_ID;
    161160    extract( shortcode_atts( array(
    162161        'rank_type'   => 'all',
     
    200199    if ( $show_search != 'false' ) {
    201200
    202         $search = isset( $_POST['earned_ranks_list_search'] ) ? $_POST['earned_ranks_list_search'] : '';
     201        $search = isset( $_POST['earned_ranks_list_search'] ) ? sanitize_text_field( $_POST['earned_ranks_list_search'] ) : '';
    203202        $ranks_html .= '<div id="badgeos-ranks-search">';
    204203        $ranks_html .= '<form id="earned_ranks_list_search_go_form" class="earned_ranks_list_search_go_form" action="'. get_permalink( get_the_ID() ) .'" method="post">';
  • badgeos/trunk/includes/steps-ui.php

    r2687784 r2765251  
    328328    ) );
    329329
     330    $badgeos_achievement_id = isset( $_POST['achievement_id'] ) ? absint( $_POST['achievement_id'] ) : '';
    330331    // Output the edit step html to insert into the Steps metabox
    331     badgeos_steps_ui_html( $step_id, $_POST['achievement_id'] );
     332    badgeos_steps_ui_html( $step_id, $badgeos_achievement_id );
    332333
    333334    // Grab the post object for our Badge
    334     $achievement = badgeos_utilities::badgeos_get_post( $_POST['achievement_id'] );
     335    $achievement = badgeos_utilities::badgeos_get_post( $badgeos_achievement_id );
    335336
    336337    // Create the P2P connection from the step to the badge
     
    339340        array(
    340341            'from' => $step_id,
    341             'to'   => $_POST['achievement_id'],
     342            'to'   => $badgeos_achievement_id,
    342343            'meta' => array(
    343344                'date' => current_time( 'mysql' )
     
    361362 */
    362363function badgeos_delete_step_ajax_handler() {
    363     wp_delete_post( $_POST['step_id'] );
     364    wp_delete_post( absint( $_POST['step_id'] ) );
    364365    die;
    365366}
     
    385386        $new_titles = array();
    386387
     388        $steps = $_POST['steps'];
    387389        // Loop through each of the created steps
    388         foreach ( $_POST['steps'] as $key => $step ) {
     390        foreach ( $steps as $key => $step ) {
    389391
    390392            // Grab all of the relevant values of that step
    391             $step_id          = $step['step_id'];
    392             $required_count   = ( ! empty( $step['required_count'] ) ) ? $step['required_count'] : 1;
    393             $trigger_type     = $step['trigger_type'];
    394             $achievement_type = $step['achievement_type'];
    395             $visit_post         = $step['visit_post'];
    396             $visit_page         = $step['visit_page'];
    397             $num_of_years       = $step['num_of_years'];
    398             $x_number_of_users  = $step['x_number_of_users'];
    399             $num_of_months      = $step['num_of_months'];
    400             $num_of_days        = $step['num_of_days'];
    401             $num_of_days_login  = $step['num_of_days_login'];
     393            $step_id            =  sanitize_text_field( $step['step_id'] );
     394            $required_count     = ( ! empty( $step['required_count'] ) ) ? sanitize_text_field( $step['required_count'] ): 1;
     395            $trigger_type       = sanitize_text_field( $step['trigger_type'] );
     396            $achievement_type   = sanitize_text_field( $step['achievement_type'] );
     397            $visit_post         = sanitize_text_field( $step['visit_post'] );
     398            $visit_page         = sanitize_text_field( $step['visit_page'] );
     399            $num_of_years       = sanitize_text_field( $step['num_of_years'] );
     400            $x_number_of_users  = sanitize_text_field( $step['x_number_of_users'] );
     401            $num_of_months      = sanitize_text_field( $step['num_of_months'] );
     402            $num_of_days        = sanitize_text_field( $step['num_of_days'] );
     403            $num_of_days_login  = sanitize_text_field( $step['num_of_days_login'] );
    402404            $badgeos_subtrigger_id = '';
    403405            $badgeos_subtrigger_value = '';
    404406            $badgeos_fields_data = '';
    405407            if( isset( $step['badgeos_subtrigger_id'] ) )
    406                 $badgeos_subtrigger_id      = $step['badgeos_subtrigger_id'];
     408                $badgeos_subtrigger_id      = sanitize_text_field( $step['badgeos_subtrigger_id'] );
    407409            if( isset( $step['badgeos_subtrigger_value'] ) )
    408                 $badgeos_subtrigger_value   = $step['badgeos_subtrigger_value'];
     410                $badgeos_subtrigger_value   = sanitize_text_field( $step['badgeos_subtrigger_value'] );
    409411            if( isset( $step['badgeos_fields_data'] ) )
    410                 $badgeos_fields_data        = $step['badgeos_fields_data'];
     412                $badgeos_fields_data        = sanitize_text_field( $step['badgeos_fields_data'] );
    411413
    412414            // Clear all relation data
     
    539541            badgeos_utilities::update_post_meta( $step_id, '_badgeos_subtrigger_id',        $badgeos_subtrigger_id );
    540542            badgeos_utilities::update_post_meta( $step_id, '_badgeos_subtrigger_value',     $badgeos_subtrigger_value );
    541             badgeos_utilities::update_post_meta( $step_id, '_badgeos_fields_data',      $badgeos_fields_data );
     543            badgeos_utilities::update_post_meta( $step_id, '_badgeos_fields_data',          $badgeos_fields_data );
    542544
    543545            // Available hook for custom Activity Triggers
     
    574576
    575577    // Grab our achievement type from the AJAX request
    576     $achievement_type = $_REQUEST['achievement_type'];
    577     $exclude_posts = (array) $_REQUEST['excluded_posts'];
    578     $requirements = badgeos_get_step_requirements( $_REQUEST['step_id'] );
     578    $achievement_type = sanitize_text_field($_REQUEST['achievement_type']);
     579    $exclude_posts = array_map('sanitize_text_field', (array) $_REQUEST['excluded_posts'] );
     580    $requirements = badgeos_get_step_requirements( sanitize_text_field($_REQUEST['step_id']) );
    579581
    580582    // If we don't have an achievement type, bail now
  • badgeos/trunk/includes/triggers.php

    r2687784 r2765251  
    100100
    101101    // Setup all our globals
    102     global $user_ID, $blog_id, $wpdb;
     102    global $blog_id, $wpdb;
    103103
    104104    $site_id = $blog_id;
     
    193193   
    194194    // Setup all our globals
    195     global $user_ID, $blog_id, $wpdb;
     195    global $blog_id, $wpdb;
    196196
    197197    $site_id = $blog_id;
  • badgeos/trunk/includes/user.php

    r2687784 r2765251  
    2323    // Setup our default args
    2424    $defaults = array(
    25         'user_id'          => 0,     // The given user's ID
    26         'site_id'          => get_current_blog_id(), // The given site's ID
    27         'achievement_id'   => false, // A specific achievement's post ID
    28         'achievement_type' => false, // A specific achievement type
    29         'start_date' => false, // A specific achievement type
    30         'end_date' => false, // A specific achievement type
    31         'no_step' => false, // A specific achievement type
    32         'since'            => 0,     // A specific timestamp to use in place of $limit_in_days
    33         'pagination'    => false,// if true the pagination will be applied
    34         'limit' => 10,
    35         'page'  => 1,
    36         'orderby' => 'entry_id',
    37         'order' => 'ASC',
    38         'total_only' => false
     25        'user_id'           => 0,                                               // The given user's ID
     26        'site_id'           => get_current_blog_id(),                           // The given site's ID
     27        'achievement_id'    => false,                                           // A specific achievement's post ID
     28        'achievement_type'  => false,                                           // A specific achievement type
     29        'start_date'        => false,                                           // A specific achievement type
     30        'end_date'          => false,                                           // A specific achievement type
     31        'no_step'           => false,                                           // A specific achievement type
     32        'since'             => 0,                                               // A specific timestamp to use in place of $limit_in_days
     33        'pagination'        => false,                                           // if true the pagination will be applied
     34        'limit'             => 10,
     35        'page'              => 1,
     36        'orderby'           => 'entry_id',
     37        'order'             => 'ASC',
     38        'total_only'        => false
    3939    );
    40     $args = wp_parse_args( $args, $defaults );
    41 
     40    $arguments = wp_parse_args( $args, $defaults );
     41    $args = array_map( 'sanitize_text_field', $arguments );
    4242    // Return our $achievements array_values (so our array keys start back at 0), or an empty array
    4343    // return ( is_array( $achievements ) ? array_values( $achievements ) : array());
     
    4949    $table_name = $wpdb->prefix . 'badgeos_achievements';
    5050    if($wpdb->get_var("show tables like '$table_name'") == $table_name) {
    51         $where = 'user_id = ' . $args['user_id'];
     51        $where = "user_id = {$args['user_id']}";
    5252   
    5353        if( isset( $args['entry_id'] ) && $args['entry_id'] != false ) {
    54             $where .= ' AND entry_id = ' . $args['entry_id'];
     54            $where .= " AND entry_id = {$args['entry_id']}";
    5555        }
    5656
    5757        if( $args['achievement_id'] != false ) {
    58             $where .= ' AND ID = ' . $args['achievement_id'];
     58            $where .= " AND ID = {$args['achievement_id']}";
    5959        }
    6060   
     
    6767
    6868                    if( ! empty( $wherepttype ) ) {
    69                         $wherepttype .= ' OR ' ;
     69                        $wherepttype .= " OR ";
    7070                    }
    71                     $wherepttype .= " post_type = '".$achievement_type . "'";
     71                    $wherepttype .= " post_type = '{$achievement_type}'";
    7272                }
    7373
    74                 $where .= ' and ( '. $wherepttype .')';
     74                $where .= " AND ( {$wherepttype} )";
    7575            } else {
    7676
    77                 $where .= " AND post_type = '".$args['achievement_type']."'";
     77                $where .= " AND post_type = '{$args['achievement_type']}'";
    7878            }
    7979        }
     
    8181        $badgeos_settings = ( $exists = badgeos_utilities::get_option( 'badgeos_settings' ) ) ? $exists : array();
    8282        if( $args['no_step'] ) {
    83             $where .= " AND post_type != '".trim( $badgeos_settings['achievement_step_post_type'] )."'";
     83            $achievement_step_post_type = trim( $badgeos_settings['achievement_step_post_type'] );
     84            $where .= " AND post_type != {$achievement_step_post_type}";
    8485        }
    8586   
    8687        if( $args['since'] > 1 ) {
    87             $where .= " AND date_earned > '". date("Y-m-d H:i:s", $args['since'] ). "'";
     88            $since = date("Y-m-d H:i:s", $args['since'] );
     89            $where .= " AND date_earned > '{$since}'";
    8890        }
    8991       
    9092        if( $args['start_date'] ) {
    91             $where .= " AND date_earned >= '". $args['start_date']. "'";
     93            $start_date = $args['start_date'];
     94            $where .= " AND date_earned >= '{$start_date}'";
    9295        }
    9396
    9497        if( $args['end_date'] ) {
    95             $where .= " AND date_earned <= '". $args['end_date']. "'";
     98            $end_date = $args['end_date'];
     99            $where .= " AND date_earned <= '{$end_date}'";
    96100        }
    97101       
    98102        $user_achievements = [];
    99103        if( $args['total_only'] == true ) {
    100             $user_achievements = $wpdb->get_var( "SELECT count(entry_id) as entry_id FROM $table_name WHERE $where" );
     104            $user_achievements = $wpdb->get_var( $wpdb->prepare( "SELECT count(entry_id) as entry_id FROM %s WHERE %s", $table_name, $where ) );
    101105        } else {
    102106           
     
    107111                    $offset = 0;
    108112                }
    109                 $paginate_str = ' limit '.$offset.', '.$args['limit'];
     113                $paginate_str = "limit {$offset}, {$args['limit']}";
    110114            }
    111115           
    112116            $order_str = '';
    113117            if( !empty( $args['orderby'] ) &&  !empty( $args['order'] ) ) {
    114                 $order_str = " ORDER BY ".$args['orderby']." ".$args['order'];
     118                $order_str = " ORDER BY {$args['orderby']} {$args['order']}";
    115119            }
    116             $user_achievements = $wpdb->get_results( "SELECT * FROM $table_name WHERE $where ".$order_str.' '.$paginate_str );
     120            $user_achievements = $wpdb->get_results( "SELECT * FROM $table_name WHERE {$where} {$order_str} {$paginate_str}" );
    117121
    118122        }
     
    523527
    524528    $badgeos_settings = ( $exists = badgeos_utilities::get_option( 'badgeos_settings' ) ) ? $exists : array();
    525     $user_recs = $_POST['achievements'];
    526     $user_id = $_POST['user_id'];
     529    $user_recs = array_map( 'sanitize_text_field', $_POST['achievements'] );
     530    $user_id = sanitize_text_field( $_POST['user_id'] );
     531    $table_name = $wpdb->prefix . 'badgeos_achievements';
    527532    if( is_array( $user_recs ) && count( $user_recs ) > 0 ) {
    528533        $achievements = array();
     
    564569                        $table_name = $wpdb->prefix . "badgeos_achievements";
    565570                        if($wpdb->get_var("show tables like '$table_name'") == $table_name) {
    566                             $where = " where user_id='".intval($user_id)."' and entry_id = '".intval($item->entry_id)."'";
    567                             $wpdb->get_results('delete from '.$wpdb->prefix.'badgeos_achievements '.$where.' limit 1' );
     571                            $where = " WHERE user_id={$user_id} AND entry_id = {$item->entry_id} ";
     572                            $wpdb->get_results("DELETE FROM {$table_name} {$where} limit 1 " );
    568573                        }
    569574                        badgeos_decrement_user_trigger_count( $user_id, $child->ID, $del_ach_id );
     
    619624     * Update Rank Type Filter Field
    620625     */
    621     $rank_type_filter = ( isset( $_POST['badgeos_ranks_filter'] ) ? $_POST['badgeos_ranks_filter'] : 'all' );
     626    $rank_type_filter = ( isset( $_POST['badgeos_ranks_filter'] ) ? sanitize_text_field( $_POST['badgeos_ranks_filter'] ) : 'all' );
    622627    badgeos_utilities::update_user_meta( $user_id, '_badgeos_ranks_filter', $rank_type_filter );
    623628
     
    625630     * Update Achievement Type Filter Field
    626631     */
    627     $rank_type_filter = ( isset( $_POST['badgeos_achievement_filter'] ) ? $_POST['badgeos_achievement_filter'] : 'all' );
     632    $rank_type_filter = ( isset( $_POST['badgeos_achievement_filter'] ) ? sanitize_text_field( $_POST['badgeos_achievement_filter'] ) : 'all' );
    628633    badgeos_utilities::update_user_meta( $user_id, '_badgeos_achievement_filter', $rank_type_filter );
    629634
  • badgeos/trunk/includes/welcome.php

    r2392364 r2765251  
    6161                                <div class="badgeos_welcome_addons_list_ul slider multiple-items">
    6262                                    <?php foreach( $addons as $key => $addon ) { ?>
     63                                        <?php
     64                                            if( strtolower( $addon->title ) == 'badgeos' ){
     65                                                continue;
     66                                            }
     67                                        ?>
    6368                                        <div class="multiple">
    6469                                            <div class="badgeos_welcome_addon">
  • badgeos/trunk/includes/widgets/earned-user-achievements-widget.php

    r2562800 r2765251  
    1616        $defaults = array( 'title' => __( 'My Achievements', 'badgeos' ), 'number' => '10', 'set_point_type' => '', 'point_total' => '', 'set_achievements' => '', 'set_ranks' => [] );
    1717        $instance = wp_parse_args( (array) $instance, $defaults );
     18        $instance = array_map( 'sanitize_text_field', $instance );
    1819        $title = $instance['title'];
    1920        $number = $instance['number'];
     
    150151    //display the widget
    151152    function widget( $args, $instance ) {
    152         global $user_ID;
    153 
     153        $args = array_map( 'sanitize_text_field', $args );     
    154154        if( array_key_exists( 'before_widget', $args ) )
    155155            echo $args['before_widget'];
  • badgeos/trunk/includes/widgets/earned-user-points-widget.php

    r2411422 r2765251  
    6363    //display the widget
    6464    function widget( $args, $instance ) {
    65         global $user_ID;
     65        $args = array_map( 'sanitize_text_field', $args );     
    6666
    6767        if( array_key_exists( 'before_widget', $args ) )
  • badgeos/trunk/includes/widgets/earned-user-ranks-widget.php

    r2562800 r2765251  
    110110    //display the widget
    111111    function widget( $args, $instance ) {
    112         global $user_ID;
     112        $args = array_map( 'sanitize_text_field', $args );     
    113113
    114114        if( array_key_exists( 'before_widget', $args ) )
  • badgeos/trunk/js/award-steps-ui.js

    r2687784 r2765251  
    9292    }
    9393
    94     if ("badgeos_wp_login" == trigger_type || "badgeos_on_completing_num_of_day" == trigger_type) {
     94    if ("badgeos_on_completing_num_of_day" == trigger_type) {
    9595      num_of_days.show();
    9696    } else {
  • badgeos/trunk/js/award-steps-ui.min.js

    r2642355 r2765251  
    1 function badgeos_add_new_award_step(e){jQuery.post(ajaxurl,{action:"add_award_step",achievement_id:e},function(e){jQuery(e).appendTo("#award_steps_list"),new_step_menu_order=Number(jQuery("#award_steps_list li.step-row").eq(-2).children('input[name="order"]').val())+1,jQuery("#award_steps_list li.step-row:last").children('input[name="order"]').val(new_step_menu_order),jQuery("#award_steps_list li.step-row:last").children(".select-trigger-type").change()})}function badgeos_delete_award_step(e){jQuery.post(ajaxurl,{action:"delete_award_step",step_id:e},function(s){jQuery(".step-"+e).remove()})}function badgeos_update_award_steps(e){jQuery(".save-award-steps-spinner").show(),step_data={action:"update_award_steps",steps:[]};var s=0;jQuery("#award_steps_list .step-row").each(function(){var e=jQuery(this),t=e.find(".select-trigger-type").val(),a=e.find(".badgeos-select-visit-post").val(),i=e.find(".badgeos-select-visit-page").val(),n=e.find("#badgeos_awardpoint_step_dynamic_section_"+t+" .badgeos_awardpoint_step_ddl_dynamic").val(),d=e.find("#badgeos_awardpoint_step_dynamic_section_"+t+" .badgeos_awardpoint_step_ddl_dynamic").attr("id"),_=e.find(".badgeos_awardpoint_step_fields_"+n+":input").serialize(),o={step_id:e.attr("data-step-id"),order:e.find('input[name="order"]').val(),required_count:e.find(".required-count").val(),point_value:e.find(".point-value").val(),trigger_type:t,achievement_type:e.find(".select-achievement-type").val(),badgeos_subtrigger_id:d,badgeos_subtrigger_value:n,badgeos_fields_data:_,visit_post:a,num_of_years:e.find(".badgeos-num-of-years").val(),num_of_months:e.find(".badgeos-num-of-months").val(),num_of_days:e.find(".badgeos-num-of-days").val(),num_of_days_login:e.find(".badgeos-num-of-days-login").val(),visit_page:i,achievement_post:"badgeos_specific_new_comment"===t?e.find("input.select-achievement-post").val():e.find("select.select-achievement-post").val(),title:e.find(".step-title .title").val()};e.trigger("update_step_data",[o,e]),step_data.steps.push(o),s++}),0==s&&jQuery(".save-award-steps-spinner").hide(),jQuery.post(ajaxurl,step_data,function(e){var s=jQuery.parseJSON(e);jQuery.each(s,function(e,s){jQuery("#step-"+e+"-title").val(s)}),jQuery(".save-award-steps-spinner").hide()})}jQuery(document).ready(function(e){e("#_badgeos_earned_by").change(function(){"triggers"==e(this).val()?e("#badgeos_steps_ui").show():e("#badgeos_steps_ui").hide()}).change(),e("#award_steps_list").sortable({update:function(){e("#award_steps_list li").each(function(s,t){e(this).children('input[name="order"]').val(s)})}}),e("#award_steps_list").on("change",".select-trigger-type",function(){var s=e(this).val(),t=e(this).siblings(".select-achievement-type"),a=e(this).siblings(".badgeos-select-visit-post"),i=e(this).siblings(".badgeos-select-visit-page"),n=e(this).siblings(".badgeos-num-of-years"),d=e(this).siblings(".badgeos-num-of-months"),_=e(this).siblings(".badgeos-num-of-days"),o=e(this).siblings(".badgeos-num-of-days-login");"any-achievement"==s||"all-achievements"==s||"specific-achievement"==s?t.show():t.hide(),"badgeos_visit_a_page"==s||"badgeos_award_author_on_visit_page"==s?i.show():i.hide(),"badgeos_visit_a_post"==s||"badgeos_award_author_on_visit_post"==s?a.show():a.hide(),"badgeos_on_completing_num_of_year"==s?n.show():n.hide(),"badgeos_on_completing_num_of_month"==s?d.show():d.hide(),"badgeos_wp_login"==s||"badgeos_on_completing_num_of_day"==s?_.show():_.hide(),"badgeos_wp_login_x_days"==s?o.show():o.hide(),e(".badgeos_awardpoint_step_fields").hide(),e(".badgeos_awardpoint_step_ddl_dynamic").hide(),e("#badgeos_awardpoint_step_ddl_dynamic_"+s).show().trigger("change"),t.change()}),e(".badgeos_awardpoint_step_ddl_dynamic").on("change",function(){e(".badgeos_awardpoint_step_subddl_dynamic").hide(),e(".badgeos_awardpoint_step_subtxt_dynamic").hide(),main_trigger=e(this).data("trigger"),curr_trigger=e(this).val(),e(".badgeos_awardpoint_step_subddl_"+curr_trigger).show(),e(".badgeos_awardpoint_step_subtxt_"+curr_trigger).show()}),e(".select-trigger-type").change(),e("#award_steps_list").on("change",".select-achievement-type",function(){var s=e(this),t=s.val(),a=s.parent("li").attr("data-step-id"),i=[s.siblings('input[name="post_id"]').val()],n=s.siblings(".select-trigger-type").val();""!==t&&"specific-achievement"==n?e.post(ajaxurl,{action:"post_award_select_ajax",achievement_type:t,step_id:a,excluded_posts:i},function(e){s.siblings("select.select-achievement-post").html(e),s.siblings("select.select-achievement-post").show()}):(s.siblings(".select-achievement-post").hide(),"badgeos_specific_new_comment"==n&&s.siblings("input.select-achievement-post").show())}),e(".select-achievement-type").change()});
     1function badgeos_add_new_award_step(e){jQuery.post(ajaxurl,{action:"add_award_step",achievement_id:e},function(e){jQuery(e).appendTo("#award_steps_list"),new_step_menu_order=Number(jQuery("#award_steps_list li.step-row").eq(-2).children('input[name="order"]').val())+1,jQuery("#award_steps_list li.step-row:last").children('input[name="order"]').val(new_step_menu_order),jQuery("#award_steps_list li.step-row:last").children(".select-trigger-type").change()})}function badgeos_delete_award_step(e){jQuery.post(ajaxurl,{action:"delete_award_step",step_id:e},function(s){jQuery(".step-"+e).remove()})}function badgeos_update_award_steps(e){jQuery(".save-award-steps-spinner").show(),step_data={action:"update_award_steps",steps:[]};var s=0;jQuery("#award_steps_list .step-row").each(function(){var e=jQuery(this),t=e.find(".select-trigger-type").val(),a=e.find(".badgeos-select-visit-post").val(),i=e.find(".badgeos-select-visit-page").val(),n=e.find("#badgeos_awardpoint_step_dynamic_section_"+t+" .badgeos_awardpoint_step_ddl_dynamic").val(),d=e.find("#badgeos_awardpoint_step_dynamic_section_"+t+" .badgeos_awardpoint_step_ddl_dynamic").attr("id"),_=e.find(".badgeos_awardpoint_step_fields_"+n+":input").serialize(),o={step_id:e.attr("data-step-id"),order:e.find('input[name="order"]').val(),required_count:e.find(".required-count").val(),point_value:e.find(".point-value").val(),trigger_type:t,achievement_type:e.find(".select-achievement-type").val(),badgeos_subtrigger_id:d,badgeos_subtrigger_value:n,badgeos_fields_data:_,visit_post:a,num_of_years:e.find(".badgeos-num-of-years").val(),num_of_months:e.find(".badgeos-num-of-months").val(),num_of_days:e.find(".badgeos-num-of-days").val(),num_of_days_login:e.find(".badgeos-num-of-days-login").val(),visit_page:i,achievement_post:"badgeos_specific_new_comment"===t?e.find("input.select-achievement-post").val():e.find("select.select-achievement-post").val(),title:e.find(".step-title .title").val()};e.trigger("update_step_data",[o,e]),step_data.steps.push(o),s++}),0==s&&jQuery(".save-award-steps-spinner").hide(),jQuery.post(ajaxurl,step_data,function(e){var s=jQuery.parseJSON(e);jQuery.each(s,function(e,s){jQuery("#step-"+e+"-title").val(s)}),jQuery(".save-award-steps-spinner").hide()})}jQuery(document).ready(function(e){e("#_badgeos_earned_by").change(function(){"triggers"==e(this).val()?e("#badgeos_steps_ui").show():e("#badgeos_steps_ui").hide()}).change(),e("#award_steps_list").sortable({update:function(){e("#award_steps_list li").each(function(s,t){e(this).children('input[name="order"]').val(s)})}}),e("#award_steps_list").on("change",".select-trigger-type",function(){var s=e(this).val(),t=e(this).siblings(".select-achievement-type"),a=e(this).siblings(".badgeos-select-visit-post"),i=e(this).siblings(".badgeos-select-visit-page"),n=e(this).siblings(".badgeos-num-of-years"),d=e(this).siblings(".badgeos-num-of-months"),_=e(this).siblings(".badgeos-num-of-days"),o=e(this).siblings(".badgeos-num-of-days-login");"any-achievement"==s||"all-achievements"==s||"specific-achievement"==s?t.show():t.hide(),"badgeos_visit_a_page"==s||"badgeos_award_author_on_visit_page"==s?i.show():i.hide(),"badgeos_visit_a_post"==s||"badgeos_award_author_on_visit_post"==s?a.show():a.hide(),"badgeos_on_completing_num_of_year"==s?n.show():n.hide(),"badgeos_on_completing_num_of_month"==s?d.show():d.hide(),"badgeos_on_completing_num_of_day"==s?_.show():_.hide(),"badgeos_wp_login_x_days"==s?o.show():o.hide(),e(".badgeos_awardpoint_step_fields").hide(),e(".badgeos_awardpoint_step_ddl_dynamic").hide(),e("#badgeos_awardpoint_step_ddl_dynamic_"+s).show().trigger("change"),t.change()}),e(".badgeos_awardpoint_step_ddl_dynamic").on("change",function(){e(".badgeos_awardpoint_step_subddl_dynamic").hide(),e(".badgeos_awardpoint_step_subtxt_dynamic").hide(),main_trigger=e(this).data("trigger"),curr_trigger=e(this).val(),e(".badgeos_awardpoint_step_subddl_"+curr_trigger).show(),e(".badgeos_awardpoint_step_subtxt_"+curr_trigger).show()}),e(".select-trigger-type").change(),e("#award_steps_list").on("change",".select-achievement-type",function(){var s=e(this),t=s.val(),a=s.parent("li").attr("data-step-id"),i=[s.siblings('input[name="post_id"]').val()],n=s.siblings(".select-trigger-type").val();""!==t&&"specific-achievement"==n?e.post(ajaxurl,{action:"post_award_select_ajax",achievement_type:t,step_id:a,excluded_posts:i},function(e){s.siblings("select.select-achievement-post").html(e),s.siblings("select.select-achievement-post").show()}):(s.siblings(".select-achievement-post").hide(),"badgeos_specific_new_comment"==n&&s.siblings("input.select-achievement-post").show())}),e(".select-achievement-type").change()});
  • badgeos/trunk/js/badgeos-achievements.js

    r2687784 r2765251  
    2424            data: {
    2525                'action': 'get-ranks-list',
     26                'nonce': BadgeosData.security,
    2627                'types': types,
    2728                'limit': data_limit,
     
    99100            data: {
    100101                'action': 'get-earned-ranks',
     102                'nonce': BadgeosData.security,
    101103                'rank_type': data_type,
    102104                'limit': data_limit,
     
    177179            data: {
    178180                'action': 'get-earned-achievements',
     181                'nonce': BadgeosData.security,
    179182                'type': data_type,
    180183                'limit': data_limit,
     
    265268            data: {
    266269                'action': 'get-achievements',
     270                'nonce': BadgeosData.security,
    267271                'type': data_type,
    268272                'limit': data_limit,
  • badgeos/trunk/js/badgeos-achievements.min.js

    r2448573 r2765251  
    1 jQuery(function(a){a("body");function e(e){var s=e.attr("data-url"),t=e.attr("data-types"),i=e.attr("data-limit"),d=(e.attr("data-show_search"),e.attr("data-user_id")),n=e.attr("data-orderby"),o=e.attr("data-order"),r=e.attr("data-show_title"),_=e.attr("data-show_thumb"),c=e.attr("data-show_description"),l=e.attr("data-default_view"),v=e.attr("data-image_width"),g=e.attr("data-image_height");e.find("div.badgeos-rank-lists-spinner").show(),a.ajax({url:s,data:{action:"get-ranks-list",types:t,limit:i,user_id:d,offset:e.find("#badgeos_rank_lists_offset").val(),count:e.find("#badgeos_ranks_count").val(),search:e.find("#rank_lists_list_search").val(),orderby:n,order:o,show_title:r,show_thumb:_,default_view:l,show_description:c,image_width:v,image_height:g},dataType:"json",success:function(s){if(e.find("div.badgeos-rank-lists-spinner").hide(),null===s.data.message);else{var t=e.find("#badgeos_rank_lists_offset").val();parseInt(t)>0?e.find("div#badgeos-list-ranks-container .ls_grid_container").append(s.data.message):e.find("div#badgeos-list-ranks-container").append(s.data.message),e.find("#badgeos_rank_lists_offset").val(s.data.offset),e.find("#badgeos_ranks_count").val(s.data.badge_count),s.data.query_count<=s.data.offset?e.find(".rank_lists_list_load_more").hide():e.find(".rank_lists_list_load_more").show(),a(".badgeos-arrange-buttons button").on("click",function(){a(".badgeos-arrange-buttons button").removeClass("selected"),a(this).addClass("selected"),a(this).hasClass("grid")?a("#badgeos-list-ranks-container ul").removeClass("list").addClass("grid"):a(this).hasClass("list")&&a("#badgeos-list-ranks-container ul").removeClass("grid").addClass("list")})}}})}function s(e){var s=e.attr("data-url"),t=e.attr("data-rank_type"),i=e.attr("data-limit"),d=(e.attr("data-show_search"),e.attr("data-user_id")),n=e.attr("data-orderby"),o=e.attr("data-order"),r=e.attr("data-show_title"),_=e.attr("data-show_thumb"),c=e.attr("data-show_description"),l=e.attr("data-default_view"),v=e.attr("data-image_width"),g=e.attr("data-image_height");e.find("div.badgeos-earned-spinner").show(),a.ajax({url:s,data:{action:"get-earned-ranks",rank_type:t,limit:i,user_id:d,offset:e.find("#badgeos_earned_ranks_offset").val(),count:e.find("#badgeos_ranks_count").val(),search:e.find("#earned_ranks_list_search").val(),orderby:n,order:o,show_title:r,show_thumb:_,default_view:l,show_description:c,image_width:v,image_height:g},dataType:"json",success:function(s){if(e.find("div.badgeos-earned-spinner").hide(),null===s.data.message);else{var t=e.find("#badgeos_earned_ranks_offset").val();parseInt(t)>0?e.find("div#badgeos-earned-ranks-container .ls_grid_container").append(s.data.message):e.find("div#badgeos-earned-ranks-container").append(s.data.message),e.find("#badgeos_earned_ranks_offset").val(s.data.offset),e.find("#badgeos_ranks_count").val(s.data.badge_count),s.data.query_count<=s.data.offset?e.find(".earned_ranks_list_load_more").hide():e.find(".earned_ranks_list_load_more").show(),a(".badgeos-arrange-buttons button").on("click",function(){a(".badgeos-arrange-buttons button").removeClass("selected"),a(this).addClass("selected"),a(this).hasClass("grid")?a("#badgeos-earned-ranks-container ul").removeClass("list").addClass("grid"):a(this).hasClass("list")&&a("#badgeos-earned-ranks-container ul").removeClass("grid").addClass("list")})}}})}function t(e){var s=e.attr("data-url"),t=e.attr("data-type"),i=e.attr("data-limit"),d=(e.attr("data-show_search"),e.attr("data-user_id")),o=e.attr("data-wpms"),r=e.attr("data-orderby"),_=e.attr("data-order"),c=e.attr("data-include"),l=e.attr("data-exclude"),v=e.attr("data-show_title"),g=e.attr("data-show_thumb"),f=e.attr("data-show_description"),b=e.attr("data-default_view"),h=e.attr("data-image_width"),u=e.attr("data-image_height");e.find("div.badgeos-earned-spinner").show(),a.ajax({url:s,data:{action:"get-earned-achievements",type:t,limit:i,user_id:d,wpms:o,offset:e.find("#badgeos_achievements_offset").val(),count:e.find("#badgeos_achievements_count").val(),search:e.find("#earned_achievements_list_search").val(),orderby:r,order:_,include:c,exclude:l,show_title:v,show_thumb:g,show_description:f,default_view:b,image_width:h,image_height:u},dataType:"json",success:function(s){if(e.find("div.badgeos-earned-spinner").hide(),null===s.data.message);else{var t=e.find("#badgeos_achievements_offset").val();parseInt(t)>0?e.find("div#badgeos-earned-achievements-container .ls_grid_container").append(s.data.message):e.find("div#badgeos-earned-achievements-container").append(s.data.message),e.find("#badgeos_achievements_offset").val(s.data.offset),e.find("#badgeos_achievements_count").val(s.data.badge_count),s.data.query_count<=s.data.offset?e.find(".earned_achievements_list_load_more").hide():e.find(".earned_achievements_list_load_more").show()}a(".badgeos-arrange-buttons button").on("click",function(){a(".badgeos-arrange-buttons button").removeClass("selected"),a(this).addClass("selected"),a(this).hasClass("grid")?a("#badgeos-earned-achievements-container ul").removeClass("list").addClass("grid"):a(this).hasClass("list")&&a("#badgeos-earned-achievements-container ul").removeClass("grid").addClass("list")}),a(".badgeos-ob-verification-buttons").on("click",function(){n(this)})}})}function i(e){var s=e.attr("data-url"),t=e.attr("data-type"),i=e.attr("data-limit"),d=e.attr("data-show_child"),n=e.attr("data-show_parent"),o=(e.attr("data-show_filter"),e.attr("data-show_search"),e.attr("data-group_id")),r=e.attr("data-user_id"),_=e.attr("data-wpms"),c=e.attr("data-orderby"),l=e.attr("data-order"),v=e.attr("data-include"),g=e.attr("data-exclude"),f=e.attr("data-meta_key"),b=e.attr("data-meta_value"),h=e.attr("data-show_title"),u=e.attr("data-show_thumb"),m=e.attr("data-show_description"),p=e.attr("data-show_steps"),k=e.attr("data-default_view"),w=e.attr("data-image_width"),y=e.attr("data-image_height");e.find("div.badgeos-spinner").show(),a.ajax({url:s,data:{action:"get-achievements",type:t,limit:i,show_parent:d,show_child:n,group_id:o,user_id:r,wpms:_,offset:e.find("#badgeos_achievements_offset").val(),count:e.find("#badgeos_achievements_count").val(),filter:e.find("#achievements_list_filter").val(),search:e.find("#achievements_list_search").val(),orderby:c,order:l,include:v,exclude:g,meta_key:f,meta_value:b,show_title:h,show_thumb:u,show_description:m,show_steps:p,default_view:k,image_width:w,image_height:y},dataType:"json",success:function(s){if(e.find("div.badgeos-spinner").hide(),null===s.data.message);else{var t=e.find("#badgeos_achievements_offset").val();parseInt(t)>0?e.find("div#badgeos-achievements-container .ls_grid_container").append(s.data.message):e.find("div#badgeos-achievements-container").append(s.data.message),e.find("#badgeos_achievements_offset").val(s.data.offset),e.find("#badgeos_achievements_count").val(s.data.badge_count),s.data.query_count<=s.data.offset?e.find(".achievements_list_load_more").hide():e.find(".achievements_list_load_more").show()}a(".badgeos-arrange-buttons button").on("click",function(){a(".badgeos-arrange-buttons button").removeClass("selected"),a(this).addClass("selected"),a(this).hasClass("grid")?a("#badgeos-achievements-container ul").removeClass("list").addClass("grid"):a(this).hasClass("list")&&a("#badgeos-achievements-container ul").removeClass("grid").addClass("list")})}})}function d(a){a.find("#badgeos_achievements_offset").val(0),a.find("#badgeos_achievements_count").val(0),a.find("div#badgeos-achievements-container").html(""),a.find(".achievements_list_load_more").hide(),i(a)}function n(e){a("#badgeos-ob-verification-res-list").html("");var s=a(e).data("bg"),t=a(e).data("eid"),i=a(e).data("uid");a(".badgeos_verification_modal_popup").fadeToggle(),a(".badgeos_verification_modal_popup").css({visibility:"visible",display:"block"});var d=0;a.ajax({url:BadgeosData.ajax_url,type:"POST",data:{action:"badgeos_validate_open_badge",bg:s,eid:t,uid:i,type:"issued_on"},dataType:"json",success:function(e){"success"==e.type&&parseInt(e.result)>0?a(".badgeos_verification_modal_panel").html('<div class="badgeos_modal_badge"><div class="badgeos_verification_checkbox"><i class="fas fa-check"></i></div><div class="badgeos_verification_badge_title"><span>'+e.message+"</span></div></div>"):a(".badgeos_verification_modal_panel").html('<div class="badgeos_modal_badge"><div class="badgeos_verification_checkbox"><i class="fas fa-times"></i></div><div class="badgeos_verification_badge_title"><span>'+e.message+"</span></div></div>"),d+=parseInt(e.result),a.ajax({url:BadgeosData.ajax_url,type:"POST",data:{action:"badgeos_validate_open_badge",bg:s,eid:t,uid:i,type:"issued_by"},dataType:"json",success:function(e){"success"==e.type&&parseInt(e.result)>0?a(".badgeos_verification_modal_panel").append('<div class="badgeos_modal_badge"><div class="badgeos_verification_checkbox"><i class="fas fa-check"></i></div><div class="badgeos_verification_badge_title"><span>'+e.message+"</span></div></div>"):a(".badgeos_verification_modal_panel").append('<div class="badgeos_modal_badge"><div class="badgeos_verification_checkbox"><i class="fas fa-times"></i></div><div class="badgeos_verification_badge_title"><span>'+e.message+"</span></div></div>"),d+=parseInt(e.result),a.ajax({url:BadgeosData.ajax_url,type:"POST",data:{action:"badgeos_validate_open_badge",bg:s,eid:t,uid:i,type:"issued_using"},dataType:"json",success:function(e){"success"==e.type&&parseInt(e.result)>0?a(".badgeos_verification_modal_panel").append('<div class="badgeos_modal_badge"><div class="badgeos_verification_checkbox"><i class="fas fa-check"></i></div><div class="badgeos_verification_badge_title"><span>'+e.message+"</span></div></div>"):a(".badgeos_verification_modal_panel").append('<div class="badgeos_modal_badge"><div class="badgeos_verification_checkbox"><i class="fas fa-times"></i></div><div class="badgeos_verification_badge_title"><span>'+e.message+"</span></div></div>"),d+=parseInt(e.result),a.ajax({url:BadgeosData.ajax_url,type:"POST",data:{action:"badgeos_validate_open_badge",bg:s,eid:t,uid:i,type:"issued_to"},dataType:"json",success:function(e){"success"==e.type&&parseInt(e.result)>0?a(".badgeos_verification_modal_panel").append('<div class="badgeos_modal_badge"><div class="badgeos_verification_checkbox"><i class="fas fa-check"></i></div><div class="badgeos_verification_badge_title"><span>'+e.message+"</span></div></div>"):a(".badgeos_verification_modal_panel").append('<div class="badgeos_modal_badge"><div class="badgeos_verification_checkbox"><i class="fas fa-times"></i></div><div class="badgeos_verification_badge_title"><span>'+e.message+"</span></div></div>"),d+=parseInt(e.result),a.ajax({url:BadgeosData.ajax_url,type:"POST",data:{action:"badgeos_validate_open_badge",bg:s,eid:t,uid:i,type:"expiry_date"},dataType:"json",success:function(e){"success"==e.type&&parseInt(e.result)>0?a(".badgeos_verification_modal_panel").append('<div class="badgeos_modal_badge"><div class="badgeos_verification_checkbox"><i class="fas fa-check"></i></div><div class="badgeos_verification_badge_title"><span>'+e.message+"</span></div></div>"):a(".badgeos_verification_modal_panel").append('<div class="badgeos_modal_badge"><div class="badgeos_verification_checkbox"><i class="fas fa-times"></i></div><div class="badgeos_verification_badge_title"><span>'+e.message+"</span></div></div>"),(d+=parseInt(e.result))<5?a(".badgeos_verification_modal_panel").append('<div class="badgeos_modal_badge"><div class="badgeos_verification_checkbox"><i class="fas fa-times"></i></div><div class="badgeos_verification_badge_title"><span class="badgeos_verified">'+e.notverified_label+"</span></div></div>"):a(".badgeos_verification_modal_panel").append('<div class="badgeos_modal_badge"><div class="badgeos_verification_checkbox"><i class="fas fa-check"></i></div><div class="badgeos_verification_badge_title"><span class="badgeos_verified">'+e.verified_label+"</span></div></div>")}})}})}})}})}})}a(".achievements_list_filter").change(function(){d(a(this).parents('div[class^="badgeos_achievement_main_container"]').eq(0))}).change(),a(".rank_lists_list_search_go_form").submit(function(s){s.preventDefault();var t,i=a(this).parents('div[class^="badgeos_ranks_list_main_container"]').eq(0);(t=i).find("#badgeos_rank_lists_offset").val(0),t.find("#badgeos_ranks_count").val(0),t.find("div#badgeos-list-ranks-container").html(""),t.find(".rank_lists_list_load_more").hide(),e(t)}),a(".earned_ranks_list_search_go").click(function(e){e.preventDefault();var t,i=a(this).parents('div[class^="badgeos_earned_rank_main_container"]').eq(0);(t=i).find("#badgeos_earned_ranks_offset").val(0),t.find("#badgeos_ranks_count").val(0),t.find("div#badgeos-earned-ranks-container").html(""),t.find(".earned_ranks_list_load_more").hide(),s(t)}),a(".achievements_list_search_go_form").submit(function(e){e.preventDefault();var s=a(this).parents('div[class^="badgeos_achievement_main_container"]').eq(0);d(s),s.find(".achievements_list_search_go").attr("disabled","disabled")}),a(".earned_achievements_list_search_go").click(function(e){e.preventDefault();var s,i=a(this).parents('div[class^="badgeos_earned_achievement_main_container"]').eq(0);(s=i).find("#badgeos_achievements_offset").val(0),s.find("#badgeos_achievements_count").val(0),s.find("div#badgeos-earned-achievements-container").html(""),s.find(".achievements_list_load_more").hide(),t(s)}),a(".achievements_list_search").focus(function(e){a(this).removeAttr("disabled"),a(".achievements_list_search_go").removeAttr("disabled")}),a(".achievements_list_load_more").click(function(){var e=a(this).parents('div[class^="badgeos_achievement_main_container"]').eq(0);e.find(".badgeos-spinner").show(),i(e)}),a(".earned_achievements_list_load_more").click(function(){var e=a(this).parents('div[class^="badgeos_earned_achievement_main_container"]').eq(0);e.find(".badgeos-earned-spinner").show(),t(e)}),a(".earned_ranks_list_load_more").click(function(){var e=a(this).parents('div[class^="badgeos_earned_rank_main_container"]').eq(0);e.find(".badgeos-earned-ranks-spinner").show(),s(e)}),a(".rank_lists_list_load_more").click(function(){var s=a(this).parents('div[class^="badgeos_ranks_list_main_container"]').eq(0);s.find(".badgeos-rank-lists-spinner").show(),e(s)}),a("#badgeos-achievements-container,.badgeos-single-achievement").on("click",".badgeos-open-close-switch a",function(e){e.preventDefault();var s=a(this);"close"==s.data("action")?(s.parent().siblings(".badgeos-extras-window").slideUp(300),s.data("action","open").prop("class","show-hide-open").text("Show Details")):(s.parent().siblings(".badgeos-extras-window").slideDown(300),s.data("action","close").prop("class","show-hide-close").text("Hide Details"))}),a(".badgeos_earned_achievements_offset").val("0"),a(".badgeos_earned_achievement_main_container").each(function(e){t(a(this))}),a(".badgeos_earned_ranks_offset").val("0"),a(".badgeos_earned_rank_main_container").each(function(e){s(a(this))}),a(".badgeos_rank_lists_offset").val("0"),a(".badgeos_ranks_list_main_container").each(function(s){e(a(this))}),a(document).on("click",".bos_ob_convert_to_ob_btn",function(e){e.preventDefault();var s=a(this),t=s.val();return a.ajax({url:BadgeosData.ajax_url,type:"POST",dataType:"json",data:{action:"bos_ob_convert_to_open_badge",entry_id:t},beforeSend:function(a){s.attr("disabled",!0).find(".bos_ob_btn_fa").show()},success:function(a){"success"==a.status&&s.text(a.message).delay(200).fadeOut()},error:function(a){},complete:function(){s.attr("disabled",!1).find(".bos_ob_btn_fa").hide()}})}),a("#open_badge_enable_baking").change(function(){"0"==a(this).val()?a("#open-badge-setting-section").hide():a("#open-badge-setting-section").show()}).change(),a(".badgeos_verification_close").click(function(){a(".badgeos_verification_modal_popup").fadeToggle(),a(".badgeos_verification_modal_popup").css({visibility:"hidden",display:"none"})}),a("#open-badgeos-verification").on("click",function(){n(this)})});
     1jQuery(function($){function a(a){var b=a.attr("data-url"),c=a.attr("data-types"),d=a.attr("data-limit");a.attr("data-show_search");var e=a.attr("data-user_id"),f=a.attr("data-orderby"),g=a.attr("data-order"),h=a.attr("data-show_title"),i=a.attr("data-show_thumb"),j=a.attr("data-show_description"),k=a.attr("data-default_view"),l=a.attr("data-image_width"),m=a.attr("data-image_height");a.find("div.badgeos-rank-lists-spinner").show(),$.ajax({url:b,data:{action:"get-ranks-list",nonce:BadgeosData.security,types:c,limit:d,user_id:e,offset:a.find("#badgeos_rank_lists_offset").val(),count:a.find("#badgeos_ranks_count").val(),search:a.find("#rank_lists_list_search").val(),orderby:f,order:g,show_title:h,show_thumb:i,default_view:k,show_description:j,image_width:l,image_height:m},dataType:"json",success:function(b){a.find("div.badgeos-rank-lists-spinner").hide(),null===b.data.message||(parseInt(a.find("#badgeos_rank_lists_offset").val())>0?a.find("div#badgeos-list-ranks-container .ls_grid_container").append(b.data.message):a.find("div#badgeos-list-ranks-container").append(b.data.message),a.find("#badgeos_rank_lists_offset").val(b.data.offset),a.find("#badgeos_ranks_count").val(b.data.badge_count),b.data.query_count<=b.data.offset?a.find(".rank_lists_list_load_more").hide():a.find(".rank_lists_list_load_more").show(),$(".badgeos-arrange-buttons button").on("click",function(){$(".badgeos-arrange-buttons button").removeClass("selected"),$(this).addClass("selected"),$(this).hasClass("grid")?$("#badgeos-list-ranks-container ul").removeClass("list").addClass("grid"):$(this).hasClass("list")&&$("#badgeos-list-ranks-container ul").removeClass("grid").addClass("list")}))}})}function b(a){var b=a.attr("data-url"),c=a.attr("data-rank_type"),d=a.attr("data-limit");a.attr("data-show_search");var e=a.attr("data-user_id"),f=a.attr("data-orderby"),g=a.attr("data-order"),h=a.attr("data-show_title"),i=a.attr("data-show_thumb"),j=a.attr("data-show_description"),k=a.attr("data-default_view"),l=a.attr("data-image_width"),m=a.attr("data-image_height");a.find("div.badgeos-earned-spinner").show(),$.ajax({url:b,data:{action:"get-earned-ranks",nonce:BadgeosData.security,rank_type:c,limit:d,user_id:e,offset:a.find("#badgeos_earned_ranks_offset").val(),count:a.find("#badgeos_ranks_count").val(),search:a.find("#earned_ranks_list_search").val(),orderby:f,order:g,show_title:h,show_thumb:i,default_view:k,show_description:j,image_width:l,image_height:m},dataType:"json",success:function(b){a.find("div.badgeos-earned-spinner").hide(),null===b.data.message||(parseInt(a.find("#badgeos_earned_ranks_offset").val())>0?a.find("div#badgeos-earned-ranks-container .ls_grid_container").append(b.data.message):a.find("div#badgeos-earned-ranks-container").append(b.data.message),a.find("#badgeos_earned_ranks_offset").val(b.data.offset),a.find("#badgeos_ranks_count").val(b.data.badge_count),b.data.query_count<=b.data.offset?a.find(".earned_ranks_list_load_more").hide():a.find(".earned_ranks_list_load_more").show(),$(".badgeos-arrange-buttons button").on("click",function(){$(".badgeos-arrange-buttons button").removeClass("selected"),$(this).addClass("selected"),$(this).hasClass("grid")?$("#badgeos-earned-ranks-container ul").removeClass("list").addClass("grid"):$(this).hasClass("list")&&$("#badgeos-earned-ranks-container ul").removeClass("grid").addClass("list")}))}})}function c(a){var b=a.attr("data-url"),c=a.attr("data-type"),d=a.attr("data-limit");a.attr("data-show_search");var e=a.attr("data-user_id"),g=a.attr("data-wpms"),h=a.attr("data-orderby"),i=a.attr("data-order"),j=a.attr("data-include"),k=a.attr("data-exclude"),l=a.attr("data-show_title"),m=a.attr("data-show_thumb"),n=a.attr("data-show_description"),o=a.attr("data-default_view"),p=a.attr("data-image_width"),q=a.attr("data-image_height");a.find("div.badgeos-earned-spinner").show(),$.ajax({url:b,data:{action:"get-earned-achievements",nonce:BadgeosData.security,type:c,limit:d,user_id:e,wpms:g,offset:a.find("#badgeos_achievements_offset").val(),count:a.find("#badgeos_achievements_count").val(),search:a.find("#earned_achievements_list_search").val(),orderby:h,order:i,include:j,exclude:k,show_title:l,show_thumb:m,show_description:n,default_view:o,image_width:p,image_height:q},dataType:"json",success:function(b){a.find("div.badgeos-earned-spinner").hide(),null===b.data.message||(parseInt(a.find("#badgeos_achievements_offset").val())>0?a.find("div#badgeos-earned-achievements-container .ls_grid_container").append(b.data.message):a.find("div#badgeos-earned-achievements-container").append(b.data.message),a.find("#badgeos_achievements_offset").val(b.data.offset),a.find("#badgeos_achievements_count").val(b.data.badge_count),b.data.query_count<=b.data.offset?a.find(".earned_achievements_list_load_more").hide():a.find(".earned_achievements_list_load_more").show()),$(".badgeos-arrange-buttons button").on("click",function(){$(".badgeos-arrange-buttons button").removeClass("selected"),$(this).addClass("selected"),$(this).hasClass("grid")?$("#badgeos-earned-achievements-container ul").removeClass("list").addClass("grid"):$(this).hasClass("list")&&$("#badgeos-earned-achievements-container ul").removeClass("grid").addClass("list")}),$(".badgeos-ob-verification-buttons").on("click",function(){f(this)})}})}function d(a){var b=a.attr("data-url"),c=a.attr("data-type"),d=a.attr("data-limit"),e=a.attr("data-show_child"),f=a.attr("data-show_parent");a.attr("data-show_filter"),a.attr("data-show_search");var g=a.attr("data-group_id"),h=a.attr("data-user_id"),i=a.attr("data-wpms"),j=a.attr("data-orderby"),k=a.attr("data-order"),l=a.attr("data-include"),m=a.attr("data-exclude"),n=a.attr("data-meta_key"),o=a.attr("data-meta_value"),p=a.attr("data-show_title"),q=a.attr("data-show_thumb"),r=a.attr("data-show_description"),s=a.attr("data-show_steps"),t=a.attr("data-default_view"),u=a.attr("data-image_width"),v=a.attr("data-image_height");$.ajax({url:b,data:{action:"get-achievements",nonce:BadgeosData.security,type:c,limit:d,show_parent:e,show_child:f,group_id:g,user_id:h,wpms:i,offset:a.find("#badgeos_achievements_offset").val(),count:a.find("#badgeos_achievements_count").val(),filter:a.find("#achievements_list_filter").val(),search:a.find("#achievements_list_search").val(),orderby:j,order:k,include:l,exclude:m,meta_key:n,meta_value:o,show_title:p,show_thumb:q,show_description:r,show_steps:s,default_view:t,image_width:u,image_height:v},dataType:"json",success:function(b){a.find("div.badgeos-spinner").hide(),null===b.data.message||(parseInt(a.find("#badgeos_achievements_offset").val())>0?a.find("div#badgeos-achievements-container .ls_grid_container").append(b.data.message):a.find("div#badgeos-achievements-container").append(b.data.message),a.find("#badgeos_achievements_offset").val(b.data.offset),a.find("#badgeos_achievements_count").val(b.data.badge_count),b.data.query_count<=b.data.offset?a.find(".achievements_list_load_more").hide():a.find(".achievements_list_load_more").show()),$(".badgeos-arrange-buttons button").on("click",function(){$(".badgeos-arrange-buttons button").removeClass("selected"),$(this).addClass("selected"),$(this).hasClass("grid")?$("#badgeos-achievements-container ul").removeClass("list").addClass("grid"):$(this).hasClass("list")&&$("#badgeos-achievements-container ul").removeClass("grid").addClass("list")})}})}function e(a){a.find("#badgeos_achievements_offset").val(0),a.find("#badgeos_achievements_count").val(0),a.find("div#badgeos-achievements-container").html(""),a.find(".achievements_list_load_more").hide(),d(a)}function f(a){$("#badgeos-ob-verification-res-list").html("");var b=$(a).data("bg"),c=$(a).data("eid"),d=$(a).data("uid");$(".badgeos_verification_modal_popup").fadeToggle(),$(".badgeos_verification_modal_popup").css({visibility:"visible",display:"block"});var e=0;$.ajax({url:BadgeosData.ajax_url,type:"POST",data:{action:"badgeos_validate_open_badge",bg:b,eid:c,uid:d,type:"issued_on"},dataType:"json",success:function(a){"success"==a.type&&parseInt(a.result)>0?$(".badgeos_verification_modal_panel").html('<div class="badgeos_modal_badge"><div class="badgeos_verification_checkbox"><i class="fas fa-check"></i></div><div class="badgeos_verification_badge_title"><span>'+a.message+"</span></div></div>"):$(".badgeos_verification_modal_panel").html('<div class="badgeos_modal_badge"><div class="badgeos_verification_checkbox"><i class="fas fa-times"></i></div><div class="badgeos_verification_badge_title"><span>'+a.message+"</span></div></div>"),e+=parseInt(a.result),$.ajax({url:BadgeosData.ajax_url,type:"POST",data:{action:"badgeos_validate_open_badge",bg:b,eid:c,uid:d,type:"issued_by"},dataType:"json",success:function(a){"success"==a.type&&parseInt(a.result)>0?$(".badgeos_verification_modal_panel").append('<div class="badgeos_modal_badge"><div class="badgeos_verification_checkbox"><i class="fas fa-check"></i></div><div class="badgeos_verification_badge_title"><span>'+a.message+"</span></div></div>"):$(".badgeos_verification_modal_panel").append('<div class="badgeos_modal_badge"><div class="badgeos_verification_checkbox"><i class="fas fa-times"></i></div><div class="badgeos_verification_badge_title"><span>'+a.message+"</span></div></div>"),e+=parseInt(a.result),$.ajax({url:BadgeosData.ajax_url,type:"POST",data:{action:"badgeos_validate_open_badge",bg:b,eid:c,uid:d,type:"issued_using"},dataType:"json",success:function(a){"success"==a.type&&parseInt(a.result)>0?$(".badgeos_verification_modal_panel").append('<div class="badgeos_modal_badge"><div class="badgeos_verification_checkbox"><i class="fas fa-check"></i></div><div class="badgeos_verification_badge_title"><span>'+a.message+"</span></div></div>"):$(".badgeos_verification_modal_panel").append('<div class="badgeos_modal_badge"><div class="badgeos_verification_checkbox"><i class="fas fa-times"></i></div><div class="badgeos_verification_badge_title"><span>'+a.message+"</span></div></div>"),e+=parseInt(a.result),$.ajax({url:BadgeosData.ajax_url,type:"POST",data:{action:"badgeos_validate_open_badge",bg:b,eid:c,uid:d,type:"issued_to"},dataType:"json",success:function(a){"success"==a.type&&parseInt(a.result)>0?$(".badgeos_verification_modal_panel").append('<div class="badgeos_modal_badge"><div class="badgeos_verification_checkbox"><i class="fas fa-check"></i></div><div class="badgeos_verification_badge_title"><span>'+a.message+"</span></div></div>"):$(".badgeos_verification_modal_panel").append('<div class="badgeos_modal_badge"><div class="badgeos_verification_checkbox"><i class="fas fa-times"></i></div><div class="badgeos_verification_badge_title"><span>'+a.message+"</span></div></div>"),e+=parseInt(a.result),$.ajax({url:BadgeosData.ajax_url,type:"POST",data:{action:"badgeos_validate_open_badge",bg:b,eid:c,uid:d,type:"expiry_date"},dataType:"json",success:function(a){"success"==a.type&&parseInt(a.result)>0?$(".badgeos_verification_modal_panel").append('<div class="badgeos_modal_badge"><div class="badgeos_verification_checkbox"><i class="fas fa-check"></i></div><div class="badgeos_verification_badge_title"><span>'+a.message+"</span></div></div>"):$(".badgeos_verification_modal_panel").append('<div class="badgeos_modal_badge"><div class="badgeos_verification_checkbox"><i class="fas fa-times"></i></div><div class="badgeos_verification_badge_title"><span>'+a.message+"</span></div></div>"),(e+=parseInt(a.result))<5?$(".badgeos_verification_modal_panel").append('<div class="badgeos_modal_badge"><div class="badgeos_verification_checkbox"><i class="fas fa-times"></i></div><div class="badgeos_verification_badge_title"><span class="badgeos_verified">'+a.notverified_label+"</span></div></div>"):$(".badgeos_verification_modal_panel").append('<div class="badgeos_modal_badge"><div class="badgeos_verification_checkbox"><i class="fas fa-check"></i></div><div class="badgeos_verification_badge_title"><span class="badgeos_verified">'+a.verified_label+"</span></div></div>")}})}})}})}})}})}$("body"),$(".achievements_list_filter").change(function(){e($(this).parents('div[class^="badgeos_achievement_main_container"]').eq(0))}).change(),$(".rank_lists_list_search_go_form").submit(function(c){var b;c.preventDefault(),(b=$(this).parents('div[class^="badgeos_ranks_list_main_container"]').eq(0)).find("#badgeos_rank_lists_offset").val(0),b.find("#badgeos_ranks_count").val(0),b.find("div#badgeos-list-ranks-container").html(""),b.find(".rank_lists_list_load_more").hide(),a(b)}),$(".earned_ranks_list_search_go").click(function(c){var a;c.preventDefault(),(a=$(this).parents('div[class^="badgeos_earned_rank_main_container"]').eq(0)).find("#badgeos_earned_ranks_offset").val(0),a.find("#badgeos_ranks_count").val(0),a.find("div#badgeos-earned-ranks-container").html(""),a.find(".earned_ranks_list_load_more").hide(),b(a)}),$(".achievements_list_search_go_form").submit(function(b){b.preventDefault();var a=$(this).parents('div[class^="badgeos_achievement_main_container"]').eq(0);e(a),a.find(".achievements_list_search_go").attr("disabled","disabled")}),$(".earned_achievements_list_search_go").click(function(b){var a;b.preventDefault(),(a=$(this).parents('div[class^="badgeos_earned_achievement_main_container"]').eq(0)).find("#badgeos_achievements_offset").val(0),a.find("#badgeos_achievements_count").val(0),a.find("div#badgeos-earned-achievements-container").html(""),a.find(".achievements_list_load_more").hide(),c(a)}),$(".achievements_list_search").focus(function(a){$(this).removeAttr("disabled"),$(".achievements_list_search_go").removeAttr("disabled")}),$(".achievements_list_load_more").click(function(){var a=$(this).parents('div[class^="badgeos_achievement_main_container"]').eq(0);a.find(".badgeos-spinner").show(),d(a)}),$(".earned_achievements_list_load_more").click(function(){var a=$(this).parents('div[class^="badgeos_earned_achievement_main_container"]').eq(0);a.find(".badgeos-earned-spinner").show(),c(a)}),$(".earned_ranks_list_load_more").click(function(){var a=$(this).parents('div[class^="badgeos_earned_rank_main_container"]').eq(0);a.find(".badgeos-earned-ranks-spinner").show(),b(a)}),$(".rank_lists_list_load_more").click(function(){var b=$(this).parents('div[class^="badgeos_ranks_list_main_container"]').eq(0);b.find(".badgeos-rank-lists-spinner").show(),a(b)}),$("#badgeos-achievements-container,.badgeos-single-achievement").on("click",".badgeos-open-close-switch a",function(b){b.preventDefault();var a=$(this);"close"==a.data("action")?(a.parent().siblings(".badgeos-extras-window").slideUp(300),a.data("action","open").prop("class","show-hide-open").text("Show Details")):(a.parent().siblings(".badgeos-extras-window").slideDown(300),a.data("action","close").prop("class","show-hide-close").text("Hide Details"))}),$(".badgeos_earned_achievements_offset").val("0"),$(".badgeos_earned_achievement_main_container").each(function(a){c($(this))}),$(".badgeos_earned_ranks_offset").val("0"),$(".badgeos_earned_rank_main_container").each(function(a){b($(this))}),$(".badgeos_rank_lists_offset").val("0"),$(".badgeos_ranks_list_main_container").each(function(b){a($(this))}),$(document).on("click",".bos_ob_convert_to_ob_btn",function(a){a.preventDefault();var b=$(this),c=b.val();return $.ajax({url:BadgeosData.ajax_url,type:"POST",dataType:"json",data:{action:"bos_ob_convert_to_open_badge",entry_id:c},beforeSend:function(a){b.attr("disabled",!0).find(".bos_ob_btn_fa").show()},success:function(a){"success"==a.status&&b.text(a.message).delay(200).fadeOut()},error:function(a){},complete:function(){b.attr("disabled",!1).find(".bos_ob_btn_fa").hide()}})}),$("#open_badge_enable_baking").change(function(){"0"==$(this).val()?$("#open-badge-setting-section").hide():$("#open-badge-setting-section").show()}).change(),$(".badgeos_verification_close").click(function(){$(".badgeos_verification_modal_popup").fadeToggle(),$(".badgeos_verification_modal_popup").css({visibility:"hidden",display:"none"})}),$("#open-badgeos-verification").on("click",function(){f(this)})})
  • badgeos/trunk/js/badgeos-shortcode-embed.js

    r2448573 r2765251  
    206206            // custom minLength
    207207            var term = extractLast(this.value);
    208             if (term.length < 3) {
     208            if (term.length < 2) {
    209209                return false;
    210210            }
  • badgeos/trunk/js/badgeos-shortcode-embed.min.js

    r2448573 r2765251  
    1 !function(e){function t(){e(".ui-autocomplete-input").val("");var t=a(),n=function(t,a){var n="[";if(n+=t,a){for(i=0;i<a.length;i++)n+=" "+a[i];e.trim(n)}return n+="]"}(t,function(t){var a=[],n=function(t){return e(".text, .select","#"+t+"_wrapper")}(t);return e.each(n,function(t,n){if(""!==n.value&&void 0!==n.value){if(e(this).hasClass("select2-hidden-accessible")){var s=e(n).select2("data"),i=[];return e.each(s,function(e,t){i.push(t.id)}),a.push(n.name+'="'+i+'"'),a}return a.push(n.name+'="'+n.value+'"'),a}}),a}(t));window.send_to_editor(n)}function a(){return e("#select_shortcode").val()}e("#select_shortcode").on("change",function(){var t;e(".shortcode-section").hide(),t=a(),e("#"+t+"_wrapper").show()}).change(),e("#badgeos_insert").on("click",function(e){e.preventDefault(),t()}),e("#badgeos_cancel").on("click",function(e){e.preventDefault(),tb_remove()}),e("#insert_badgeos_shortcodes").on("click",function(t){var a=e(".select2-container");e.each(a,function(t,a){e(a).val("")})});var n={language:{noResults:function(){return"No Results"},errorLoading:function(){return"Searching..."}},escapeMarkup:function(e){return e},placeholder:badgeos_shortcode_embed_messages.id_placeholder,allowClear:!0},s=e.extend(!0,{},n,{});function o(e){return(t=e,t.split(/,\s*/)).pop();var t}function r(t){setTimeout(function(){var a=t.attr("data-width");e(".badgeos-shortcode-thickbox").width(a);var n=e(".badgeos-shortcode-thickbox").height();e(".badgeos-shortcode-thickbox #TB_ajaxContent").width(a-30).height(n-50),e(".badgeos-shortcode-thickbox .wrap").width(a-50).height(n-50)},0)}e("#badgeos_achievement_id,#badgeos_rank_id, #badgeos_nomination_achievement_id, #badgeos_submission_achievement_id, #badgeos_user_earned_points_point_type, #badgeos_evidence_achievement").select2(n),e("#badgeos_achievements_list_include, #badgeos_achievements_list_exclude, #badgeos_user_earned_achievements_include, #badgeos_user_earned_achievements_exclude,#badgeos_user_earned_ranks_rank_type").attr("multiple",!0).select2(s),e("#badgeos_achievements_list_type, #badgeos_user_earned_achievements_type").html(badgeos_shortcode_embed_messages.achievements_select_options).attr("multiple",!0).select2({language:{noResults:function(){return"No Results"},errorLoading:function(){return"Searching..."}},escapeMarkup:function(e){return e},placeholder:badgeos_shortcode_embed_messages.id_multiple_placeholder,allowClear:!0}),e("#badgeos_ranks_list_types").attr("multiple",!0).select2({language:{noResults:function(){return"No Results"},errorLoading:function(){return"Searching..."}},escapeMarkup:function(e){return e},placeholder:badgeos_shortcode_embed_messages.id_multiple_placeholder,allowClear:!0}),e("#badgeos_achievements_list_user_id1, #badgeos_user_earned_achievements_user_id1, #badgeos_user_earned_ranks_user_id1, #badgeos_user_earned_points_user_id1, #badgeos_ranks_list_user_id1, #badgeos_evidence_user_id1").autocomplete({source:function(t,a){e.getJSON(ajaxurl,{q:o(t.term),action:"badgeos-get-users-list"},a)},multiselect:!1,search:function(){if(o(this.value).length<3)return!1},focus:function(){return!1},change:function(e,t){var a=jQuery(this);if(""==a.val()){var n=a.data("fieldname");"autocomplete"==a.data("type")&&jQuery("#"+n).val("")}},select:function(e,t){var a=jQuery(this),n=a.data("fieldname");return"autocomplete"==a.data("type")&&(""!=t.item.value?jQuery("#"+n).val(t.item.value):jQuery("#"+n).val(t.item.id)),this.value=t.item.label,!1}}),e("#badgeos_evidence_award_id1").autocomplete({source:function(t,a){e.getJSON(ajaxurl,{q:o(t.term),action:"get-achievements-award-list",achievement_id:e("#badgeos_evidence_achievement").val(),user_id:e("#badgeos_evidence_user_id").val()},a)},multiselect:!1,search:function(){if(o(this.value).length<3)return!1},focus:function(){return!1},change:function(e,t){var a=jQuery(this);if(""==a.val()){var n=a.data("fieldname");"autocomplete"==a.data("type")&&jQuery("#"+n).val("")}},select:function(e,t){var a=jQuery(this),n=a.data("fieldname");return"autocomplete"==a.data("type")&&(""!=t.item.value?jQuery("#"+n).val(t.item.value):jQuery("#"+n).val(t.item.id)),this.value=t.item.label,!1}}),e("body").on("click","#insert_badgeos_shortcodes",function(t){var a;t.preventDefault(),a=e(this),setTimeout(function(){e("#TB_window").addClass("badgeos-shortcode-thickbox"),r(a)},0),e(".ui-autocomplete-multiselect").css("width","90%")}),e(window).resize(function(){r(e("#insert_badgeos_shortcodes"))})}(jQuery);
     1!function(e){function t(){e(".ui-autocomplete-input").val("");var t=a(),n=function(t,a){var n="[";if(n+=t,a){for(i=0;i<a.length;i++)n+=" "+a[i];e.trim(n)}return n+="]"}(t,function(t){var a=[],n=function(t){return e(".text, .select","#"+t+"_wrapper")}(t);return e.each(n,function(t,n){if(""!==n.value&&void 0!==n.value){if(e(this).hasClass("select2-hidden-accessible")){var s=e(n).select2("data"),i=[];return e.each(s,function(e,t){i.push(t.id)}),a.push(n.name+'="'+i+'"'),a}return a.push(n.name+'="'+n.value+'"'),a}}),a}(t));window.send_to_editor(n)}function a(){return e("#select_shortcode").val()}e("#select_shortcode").on("change",function(){var t;e(".shortcode-section").hide(),t=a(),e("#"+t+"_wrapper").show()}).change(),e("#badgeos_insert").on("click",function(e){e.preventDefault(),t()}),e("#badgeos_cancel").on("click",function(e){e.preventDefault(),tb_remove()}),e("#insert_badgeos_shortcodes").on("click",function(t){var a=e(".select2-container");e.each(a,function(t,a){e(a).val("")})});var n={language:{noResults:function(){return"No Results"},errorLoading:function(){return"Searching..."}},escapeMarkup:function(e){return e},placeholder:badgeos_shortcode_embed_messages.id_placeholder,allowClear:!0},s=e.extend(!0,{},n,{});function o(e){return(t=e,t.split(/,\s*/)).pop();var t}function r(t){setTimeout(function(){var a=t.attr("data-width");e(".badgeos-shortcode-thickbox").width(a);var n=e(".badgeos-shortcode-thickbox").height();e(".badgeos-shortcode-thickbox #TB_ajaxContent").width(a-30).height(n-50),e(".badgeos-shortcode-thickbox .wrap").width(a-50).height(n-50)},0)}e("#badgeos_achievement_id,#badgeos_rank_id, #badgeos_nomination_achievement_id, #badgeos_submission_achievement_id, #badgeos_user_earned_points_point_type, #badgeos_evidence_achievement").select2(n),e("#badgeos_achievements_list_include, #badgeos_achievements_list_exclude, #badgeos_user_earned_achievements_include, #badgeos_user_earned_achievements_exclude,#badgeos_user_earned_ranks_rank_type").attr("multiple",!0).select2(s),e("#badgeos_achievements_list_type, #badgeos_user_earned_achievements_type").html(badgeos_shortcode_embed_messages.achievements_select_options).attr("multiple",!0).select2({language:{noResults:function(){return"No Results"},errorLoading:function(){return"Searching..."}},escapeMarkup:function(e){return e},placeholder:badgeos_shortcode_embed_messages.id_multiple_placeholder,allowClear:!0}),e("#badgeos_ranks_list_types").attr("multiple",!0).select2({language:{noResults:function(){return"No Results"},errorLoading:function(){return"Searching..."}},escapeMarkup:function(e){return e},placeholder:badgeos_shortcode_embed_messages.id_multiple_placeholder,allowClear:!0}),e("#badgeos_achievements_list_user_id1, #badgeos_user_earned_achievements_user_id1, #badgeos_user_earned_ranks_user_id1, #badgeos_user_earned_points_user_id1, #badgeos_ranks_list_user_id1, #badgeos_evidence_user_id1").autocomplete({source:function(t,a){e.getJSON(ajaxurl,{q:o(t.term),action:"badgeos-get-users-list"},a)},multiselect:!1,search:function(){if(o(this.value).length<3)return!1},focus:function(){return!1},change:function(e,t){var a=jQuery(this);if(""==a.val()){var n=a.data("fieldname");"autocomplete"==a.data("type")&&jQuery("#"+n).val("")}},select:function(e,t){var a=jQuery(this),n=a.data("fieldname");return"autocomplete"==a.data("type")&&(""!=t.item.value?jQuery("#"+n).val(t.item.value):jQuery("#"+n).val(t.item.id)),this.value=t.item.label,!1}}),e("#badgeos_evidence_award_id1").autocomplete({source:function(t,a){e.getJSON(ajaxurl,{q:o(t.term),action:"get-achievements-award-list",achievement_id:e("#badgeos_evidence_achievement").val(),user_id:e("#badgeos_evidence_user_id").val()},a)},multiselect:!1,search:function(){if(o(this.value).length<2)return!1},focus:function(){return!1},change:function(e,t){var a=jQuery(this);if(""==a.val()){var n=a.data("fieldname");"autocomplete"==a.data("type")&&jQuery("#"+n).val("")}},select:function(e,t){var a=jQuery(this),n=a.data("fieldname");return"autocomplete"==a.data("type")&&(""!=t.item.value?jQuery("#"+n).val(t.item.value):jQuery("#"+n).val(t.item.id)),this.value=t.item.label,!1}}),e("body").on("click","#insert_badgeos_shortcodes",function(t){var a;t.preventDefault(),a=e(this),setTimeout(function(){e("#TB_window").addClass("badgeos-shortcode-thickbox"),r(a)},0),e(".ui-autocomplete-multiselect").css("width","90%")}),e(window).resize(function(){r(e("#insert_badgeos_shortcodes"))})}(jQuery);
  • badgeos/trunk/readme.txt

    r2687806 r2765251  
    44Tags: badge, badges, openbadges, gamification, learningtimes, OBI, mozilla, open badges, achievement, points, ranks, award, reward, engagement, submission, nomination, API, open credit, credit
    55Requires at least: 4.0
    6 Tested up to: 5.9.1
    7 Stable tag: 3.7.0
     6Tested up to: 6.0.1
     7Stable tag: 3.7.1
    88License: GNU AGPLv3
    99License URI: http://www.gnu.org/licenses/agpl-3.0.html
     
    201201== Changelog ==
    202202
     203= 3.7.1 =
     204* Fix: SQL tainted queries.
     205* Fix: Unsanitize parameters in shortcodes/widgets/blocks.
     206* Fix: Steps saving issue with achievements/points/ranks.
     207* Fix: Achievement/Ranks/Points image resizing issues from default settings.
     208* Fix: Remove limit for downloading assets from assets menu.
     209
    203210= 3.7.0 =
    204211* New: Added "On User Birthday" trigger on achievements, ranks, and points award.
Note: See TracChangeset for help on using the changeset viewer.