0

I'm trying to remove the filter by calling a PHP function using and it's not working.

Here is my code

JS

<script type="text/javascript">
function in_right_place()
{
    var x="<?php in_right_place(); ?>";
    alert(x);
    return false;
}
window.onload = in_right_place;
</script>

PHP

<?php
function in_right_place()
{
remove_action( 'login_init', 'send_frame_options_header', 10, 0 );
}
?>

This doesn't work, probably for good reasons for professional eyes, but I don't know what to do next to make it work

This is a first step, at the end I want to Call this function on a specific condition, But can't make the first step work.

1 Answers1

0

you will need to make ajax request to wordpress. something like this in functions.php or in a custom plugin (php file you are referring to)

function in_right_place()
{
    remove_action( 'login_init', 'send_frame_options_header', 10, 0 );
    die('done');
}
add_action("wp_ajax_nopriv_in_right_place", "in_right_place");
add_action("wp_ajax_in_right_place", "in_right_place");

In your js do something like this (assuming you have jQuery if not see this)

jQuery.post(
"http://yoursite/wp-admin/admin-ajax.php ", 
{
    'action': 'in_right_place'
}, 
function(response){
    alert('The server responded: ' + response);
});

more details here and here

Community
  • 1
  • 1
Junaid
  • 1,004
  • 8
  • 24
  • Thanks for the answer, I've taken a look at the more detail page but I didn't understand how to call the function using Ajax. I think it's above my coding level. Do you know how to do the Ajax side properly? – user3234831 Aug 05 '15 at 07:20
  • That's awesome, I think it's beginning to work. now It shows the message, but the filter wasn't removed, (I've checked in the header) Any idea why? – user3234831 Aug 05 '15 at 07:42
  • @user3234831 there should be a better way for what you are trying to do. header is written when page is rendered so you need to create a logic there. does header persist if you reload the page ? – Junaid Aug 05 '15 at 07:55
  • Yes even after I refresh the page I get the message, it says (The server responded: done),,, but the header is still X-Frame-Options:SAMEORIGIN. Maybe there is another way to do it I wouldn't know where to start that's the best one I've found, and the one that worked when I just placed the remove_action in functions.php – user3234831 Aug 05 '15 at 08:02
  • Thanks again for the answer, It seems that what I wanted to achieve is impossible since the PHP section was already executed before the JavaScript. But what you've written above does work for passing messages so I thank you again. – user3234831 Aug 05 '15 at 10:58