little.chimp
Forum Replies Created
-
AuthorPosts
-
little.chimpParticipant
for my own reference…
/function.php Line: 255-279 commented out. notification.js
/function.php Line: 213
if (is_single() || is_archive() || is_page('inbox')) {
wp_enqueue_style( 'fep-common-style' );
}little.chimpParticipantOr maybe the first message from any users is set to “pending” and then once approved any further new messages are automatically “published”?
little.chimpParticipantOriginally, I only wanted to strip the HTML from the message of the email, but what I ended up with, striped it from the email and the website. Which worked out as it makes the site more secure, and I was able to modify my attached scam warning message with a bit of CSS, so it made sense on the website and in the email. The code in reply #45825 is simplified compared to the live code, to make it more generic and less specific to my website.
little.chimpParticipantThis reply has been marked as private.little.chimpParticipantI got it all working, I found the reference I need to understand the filter here.
Here’s the working code.
function fep_rip_tags($string, $rep = ' ') { $string = preg_replace ('/<[^>]*>/', $rep, $string); $string = str_replace("\r", '', $string); // --- replace with empty space $string = str_replace("\n", $rep, $string); // --- replace with space $string = str_replace("\t", $rep, $string); // --- replace with space $string = trim(preg_replace('/ {2,}/', $rep, $string)); return $string; } function fep_strpos_arr($haystack) { $needle = array('a selection', 'of various', 'keywords', 'related to scams'); foreach($needle as $value) { if (strpos($haystack, $value) !== false) { return "<p><b>Warning!</b> This is a scam.</p>"; } } return false; } add_filter( 'fep_filter_message_before_send', function( $message ) { $haystack = $message['message_content']; $message['message_content'] = fep_strpos_arr($haystack) . fep_rip_tags( $message['message_content'] ); return $message; }, 99);
It was the
$message['message_content'];
bit that I was unable to find in the plugin code or docs. But now I know what to look for, it’s everywhere. I’ve return my class-fep-email-beautify.php back to it’s default state too, reenabling wpautop on the copy.little.chimpParticipantI’ve realised I could drop
$message = "{{message}}";
from the code and update the “New message content” in the settings to just be{{message}}
and still have the message pulled in with just the $message variable. But I’m still unable to modify the $string via PHP functions, plus HTML that’s added to messages is sent through with the email, as I’m unable to strip it out.little.chimpParticipantI’ve edit the code in class-fep-email-beautify.php to allow me to do some testing (I will change it back once I have a solution), which means I’ve been able to pull the message into the email template without the <p></p>.
But even thought I have {{message}} in a $string, I’m still unable to modify or validate it using any sort of PHP function. It seems immune to my tinkering.
This lot works as soon as I switch out {{message}} for the actual message copy, until then it comes back ‘false’ even when I know if should be ‘true’.
function rip_tags($string, $rep = ' ') { $string = preg_replace ('/<[^>]*>/', $rep, $string); $string = str_replace("\r", '', $string); // --- replace with empty space $string = str_replace("\n", $rep, $string); // --- replace with space $string = str_replace("\t", $rep, $string); // --- replace with space $string = trim(preg_replace('/ {2,}/', $rep, $string)); return $string; } /* strpos that takes an array of values to match against a string */ function strpos_arr($haystack, $needle) { foreach($needle as $value) { if (strpos($haystack, $value) !== false) { return "<p><b>Warning!</b></p>"; } } return false; } $message = "{{message}}"; $message = rip_tags($message); $needle = array('various scam', 'keywords', 'and other stuff'); $haystack = $message;
little.chimpParticipantIs there a simple way to filter or stop the wpautop on line 116 of pro/includes/class-fep-email-beautify.php, while retaining HTML as the email format?
little.chimpParticipant$message = strip_tags( $message);
should have shown$message = strip_tags('{{message}}');
, I mistyped.little.chimpParticipantI’ve got plugins conflicting with each other. I’m still working through them trying to untangle the mess. I’ll report back once I find the cause.
little.chimpParticipantI’ve got all of them unticked already, do you have a snippet that allows me to disable the calls?
little.chimpParticipantMuch appreciated. I’ll just comment out my customisations once you push the update. 🙂
little.chimpParticipantSo, as a work around?
function message_to_placeholder_replace($output) { if (is_page('messages')) { $replace = array('#placeholder="Name of the recipient."#'); $string = 'placeholder="To"'; $output = preg_replace($replace, $string, $output, 1); return $output; } } function start_message_to_placeholder_replace() { ob_start("message_to_placeholder_replace"); } add_action('wp_head','start_message_to_placeholder_replace');
little.chimpParticipantYep, screenshot attached. I’m hiding the labels with CSS at the moment, but everything in the fep_form_fields filter works apart from the message_to elements.
Attachments:You must be logged in to view attached files.little.chimpParticipantEven with a vanilla installation, I can’t get it to work consistently. It may be my hosting or the caching system, but I’ve decided to go with a javascript reload to cover my bases.
add_filter( 'fep_form_submit_button', function( $button, $where ){ if( 'reply' == $where ){ // $fep_message_id = fep_get_the_id(); // $website = site_url( '/messages/', 'https' ) . '?fepaction=viewmessage&fep_id=' . fep_get_parent_id($fep_message_id); $button = '<button type="submit" onclick="setTimeout(location.reload.bind(location), 1500);" class="fep-button" name="fep_action" value="'. esc_attr( $where ) .'">Reply</button>'; } return $button; }, 10, 2 );
-
AuthorPosts