Help with jquery/ajax requests
I figured it out. I was creating the form when a button was clicked. I had to put the replyform submit within that function. Working now.
I figured it out. I was creating the form when a button was clicked. I had to put the replyform submit within that function. Working now.
So, I figured out why this only worked once, and not every time afterward. I have the ID and URL wrapped in a <span> with an ID and class tied to it. However when the if(response.success === true) { fired, and updated the ID and URL of the image, it overwrote the entire <span> with … Read more
You’re using an invalid Content-Type header. x-www-form-urlencoded isn’t a valid content-type. The correct content type is application/x-www-form-urlencoded. Essentially, the web server doesn’t know how to handle the content type you’re giving it to parse the parameters. This is why the request is failing with a 400 because WP is not getting anything in the POST … Read more
I think it’s because you’re doing your localization in the shortcode which may be messing with the order of things. Instead do this: add_action( ‘wp_enqueue_scripts’, array( $this, ‘frontend_enqueue’ ) ); function frontend_enqueue() { wp_register_script( ‘my-handle’, plugins_url( ‘js/frontend.js’, __FILE__), array( ‘jquery’ ), ‘1.0.0’, true); wp_localize_script(‘my-handle’, ‘ajax_actions’, array( ‘ajaxurl’ => admin_url( ‘admin-ajax.php’ ) )); } Then… add_shortcode( … Read more
If you look at the source of admin-ajax.php, the answer becomes clearer: $action = $_REQUEST[‘action’]; if ( is_user_logged_in() ) { // If no action is registered, return a Bad Request response. if ( ! has_action( “wp_ajax_{$action}” ) ) { wp_die( ‘0’, 400 ); } /** * Fires authenticated Ajax actions for logged-in users. * * … Read more
You’re declaring the AJAX handler inside the shortcode handler. That’s not going to work: admin AJAX requests aren’t processed in the context of a page, so the shortcode won’t be run, so the handler won’t be set up. You’ll need to move the function definition and add_actions out to the top level, not inside wpcode_elementor_shortcode. … Read more
To pass the current post type to your AJAX request, you need to modify your JS to include the post type information in the AJAX request. You can achieve this by adding the post type as a parameter when calling the filterPosts() function JS import Alpine from ‘alpinejs’; Alpine.data(“filterPosts”, (adminURL, postType) => ({ posts: “”, … Read more
The action wp_enqueue_scripts action hook is only on the frontend: try changing this to admin_enqueue_scripts for the admin (untested): add_action( ‘admin_enqueue_scripts’, ‘cf7_script_and_style’ ); Edit: After looking at the definition for wpcf7_enqueue_scripts(), it turns out that CF7 doesn’t anticipate being loaded in the admin: who would’ve guessed. You’ll need to copy a lot of that file … Read more
If I’m understanding this correctly, the issue seems to lie in the HTML form action attribute, where you’re posting to admin-ajax.php. Because of this, your page is being redirected to that URL. Instead, you should prevent the form submission from redirecting the page by using JavaScript. Your JavaScript code should be like: <script> jQuery(function($){ $(‘#filter’).on(‘submit’, … Read more
@sergio Here is the working answer you can check if there is still any issue paste it here and it if it works well you can upvote the answer to help others. The issue it when you click button your $(this).prop(‘files’)[0] is not working because not this scope to the button element. $(‘body’).on(‘click’, ‘#enviar_fichero’, function() … Read more