| | 935 | * Filter away SITE_URL_META from a reply, UNLESS current user is the topic starter themselves, a moderator or the author of the reply. |
| | 936 | * |
| | 937 | * @param string $content Topic reply content. |
| | 938 | * @return string |
| | 939 | */ |
| | 940 | public function filter_extra_url_topic_field_from_replies( $content ) { |
| | 941 | $url = get_post_meta( bbp_get_topic_id(), self::SITE_URL_META, true ); |
| | 942 | |
| | 943 | // If no custom URL has been added to the post, no extra processing is needed. |
| | 944 | if ( ! $url ) { |
| | 945 | return $content; |
| | 946 | } |
| | 947 | |
| | 948 | $url = parse_url( $url ); |
| | 949 | |
| | 950 | // Return early if the URL has not been used. |
| | 951 | if ( substr_count( $content, $url['host'] ) < 1 ) { |
| | 952 | return $content; |
| | 953 | } |
| | 954 | |
| | 955 | // Do not filter the URL for the topic creator themselves. |
| | 956 | if ( bbp_get_topic_author_id() === get_current_user_id() ) { |
| | 957 | $user_information = sprintf( |
| | 958 | '<p class="wporg-bbp-topic-site-url">%s</p>', |
| | 959 | __( 'This reply contains one or more links to the page you need help with. These links will only be shown to you and the author of this reply.', 'wporg-forums' ) |
| | 960 | ); |
| | 961 | |
| | 962 | return $content . $user_information; |
| | 963 | } |
| | 964 | |
| | 965 | // Do not filter the URL for the reply author and moderators. |
| | 966 | if ( current_user_can( 'moderate' ) || bbp_get_reply_author_id() === get_current_user_id() ) { |
| | 967 | $user_information = sprintf( |
| | 968 | '<p class="wporg-bbp-topic-site-url">%s</p>', |
| | 969 | __( 'This reply contains one or more links to the thread starter\'s page. These links will only be shown to you and the person who created this thread.', 'wporg-forums' ) |
| | 970 | ); |
| | 971 | |
| | 972 | return $content . $user_information; |
| | 973 | } |
| | 974 | |
| | 975 | // Replace the occurrence of the URL the user needs help on, with an example domain. |
| | 976 | $content = str_ireplace( $url['host'], 'example.com', $content ); |
| | 977 | |
| | 978 | // Wrap example URLs in code ticks to exemplify that they are, in fact, not real links. |
| | 979 | $content = preg_replace( "/(\S*example.com\S*)/si", "<code>$1</code>", $content ); |
| | 980 | |
| | 981 | return $content; |
| | 982 | } |
| | 983 | |
| | 984 | /** |