| 1 | <?php |
|---|
| 2 | |
|---|
| 3 | su_add_shortcode( |
|---|
| 4 | array( |
|---|
| 5 | 'id' => 'members', |
|---|
| 6 | 'callback' => 'su_shortcode_members', |
|---|
| 7 | 'image' => su_get_plugin_url() . 'admin/images/shortcodes/members.svg', |
|---|
| 8 | 'name' => __( 'Members', 'shortcodes-ultimate' ), |
|---|
| 9 | 'type' => 'wrap', |
|---|
| 10 | 'group' => 'other', |
|---|
| 11 | 'atts' => array( |
|---|
| 12 | 'message' => array( |
|---|
| 13 | 'default' => __( 'This content is for registered users only. Please %login%.', 'shortcodes-ultimate' ), |
|---|
| 14 | 'name' => __( 'Message', 'shortcodes-ultimate' ), |
|---|
| 15 | 'desc' => __( 'Message for not logged users', 'shortcodes-ultimate' ), |
|---|
| 16 | ), |
|---|
| 17 | 'color' => array( |
|---|
| 18 | 'type' => 'color', |
|---|
| 19 | 'default' => '#ffcc00', |
|---|
| 20 | 'name' => __( 'Box color', 'shortcodes-ultimate' ), |
|---|
| 21 | 'desc' => __( 'This color will applied only to box for not logged users', 'shortcodes-ultimate' ), |
|---|
| 22 | ), |
|---|
| 23 | 'login_text' => array( |
|---|
| 24 | 'default' => __( 'login', 'shortcodes-ultimate' ), |
|---|
| 25 | 'name' => __( 'Login link text', 'shortcodes-ultimate' ), |
|---|
| 26 | 'desc' => __( 'Text for the login link', 'shortcodes-ultimate' ), |
|---|
| 27 | ), |
|---|
| 28 | 'login_url' => array( |
|---|
| 29 | 'default' => '', |
|---|
| 30 | 'name' => __( 'Login link url', 'shortcodes-ultimate' ), |
|---|
| 31 | 'desc' => __( 'Login link url', 'shortcodes-ultimate' ), |
|---|
| 32 | ), |
|---|
| 33 | 'class' => array( |
|---|
| 34 | 'type' => 'extra_css_class', |
|---|
| 35 | 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ), |
|---|
| 36 | 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ), |
|---|
| 37 | 'default' => '', |
|---|
| 38 | ), |
|---|
| 39 | ), |
|---|
| 40 | 'content' => __( 'Content for logged members', 'shortcodes-ultimate' ), |
|---|
| 41 | 'desc' => __( 'Content for logged in members only', 'shortcodes-ultimate' ), |
|---|
| 42 | 'icon' => 'lock', |
|---|
| 43 | ) |
|---|
| 44 | ); |
|---|
| 45 | |
|---|
| 46 | function su_shortcode_members( $atts = null, $content = null ) { |
|---|
| 47 | |
|---|
| 48 | $atts = su_parse_shortcode_atts( |
|---|
| 49 | 'members', |
|---|
| 50 | $atts, |
|---|
| 51 | array( |
|---|
| 52 | 'style' => null, |
|---|
| 53 | 'login' => null, |
|---|
| 54 | ) |
|---|
| 55 | ); |
|---|
| 56 | |
|---|
| 57 | if ( empty( $atts['login_url'] ) ) { |
|---|
| 58 | $atts['login_url'] = wp_login_url(); |
|---|
| 59 | } |
|---|
| 60 | |
|---|
| 61 | // 3.x |
|---|
| 62 | if ( null !== $atts['style'] ) { |
|---|
| 63 | $atts['color'] = str_replace( array( '0', '1', '2' ), array( '#fff', '#FFFF29', '#1F9AFF' ), $atts['style'] ); |
|---|
| 64 | } |
|---|
| 65 | |
|---|
| 66 | if ( is_feed() ) { |
|---|
| 67 | return; |
|---|
| 68 | } |
|---|
| 69 | |
|---|
| 70 | if ( is_user_logged_in() ) { |
|---|
| 71 | return do_shortcode( $content ); |
|---|
| 72 | } |
|---|
| 73 | |
|---|
| 74 | // 3.x |
|---|
| 75 | if ( null !== $atts['login'] && '0' === $atts['login'] ) { |
|---|
| 76 | return; |
|---|
| 77 | } |
|---|
| 78 | |
|---|
| 79 | $login = '<a href="' . esc_attr( esc_url( $atts['login_url'] ) ) . '">' . $atts['login_text'] . '</a>'; |
|---|
| 80 | |
|---|
| 81 | su_query_asset( 'css', 'su-shortcodes' ); |
|---|
| 82 | |
|---|
| 83 | return '<div class="su-members' . su_get_css_class( $atts ) . '" style="background-color:' . su_adjust_brightness( $atts['color'], 50 ) . ';border-color:' . su_adjust_brightness( $atts['color'], -20 ) . ';color:' . su_adjust_brightness( $atts['color'], -60 ) . '">' . str_replace( '%login%', $login, su_do_attribute( $atts['message'] ) ) . '</div>'; |
|---|
| 84 | |
|---|
| 85 | } |
|---|