WordPress: Customize Ajax request response via filter










0















There is a function in parent theme and I want to customize success message, I don't want to make change in parent theme file. And the function is not pluggable so I can't override it. After digging, I found that I can use add_filter hook to filter response.



I wrote this code:



add_filter( 'wp_ajax_sync-data', 'custom_sync_data' );

function custom_sync_data()
$response = array(
'success' => true,
'message' => 'Date is updated'
);
wp_send_json($response);



It does the job but it always returns success message, without any validation. I don't know, how to pass parameter for validation or decision making.



Any help please...










share|improve this question


























    0















    There is a function in parent theme and I want to customize success message, I don't want to make change in parent theme file. And the function is not pluggable so I can't override it. After digging, I found that I can use add_filter hook to filter response.



    I wrote this code:



    add_filter( 'wp_ajax_sync-data', 'custom_sync_data' );

    function custom_sync_data()
    $response = array(
    'success' => true,
    'message' => 'Date is updated'
    );
    wp_send_json($response);



    It does the job but it always returns success message, without any validation. I don't know, how to pass parameter for validation or decision making.



    Any help please...










    share|improve this question
























      0












      0








      0








      There is a function in parent theme and I want to customize success message, I don't want to make change in parent theme file. And the function is not pluggable so I can't override it. After digging, I found that I can use add_filter hook to filter response.



      I wrote this code:



      add_filter( 'wp_ajax_sync-data', 'custom_sync_data' );

      function custom_sync_data()
      $response = array(
      'success' => true,
      'message' => 'Date is updated'
      );
      wp_send_json($response);



      It does the job but it always returns success message, without any validation. I don't know, how to pass parameter for validation or decision making.



      Any help please...










      share|improve this question














      There is a function in parent theme and I want to customize success message, I don't want to make change in parent theme file. And the function is not pluggable so I can't override it. After digging, I found that I can use add_filter hook to filter response.



      I wrote this code:



      add_filter( 'wp_ajax_sync-data', 'custom_sync_data' );

      function custom_sync_data()
      $response = array(
      'success' => true,
      'message' => 'Date is updated'
      );
      wp_send_json($response);



      It does the job but it always returns success message, without any validation. I don't know, how to pass parameter for validation or decision making.



      Any help please...







      wordpress wordpress-theming add-filter






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 15 '18 at 7:04









      AlenaAlena

      1321313




      1321313






















          1 Answer
          1






          active

          oldest

          votes


















          1














          Can you try this



          function custom_sync_data($params)
          //$params can be data or parameters you will have to pass
          //or you will have to check
          //based on that your setup validation or logic
          $response = array(
          'success' => true,
          'message' => 'Date is updated'
          );

          wp_send_json($response);


          You may also use var_dump($params) to check if anything is passed to function.



          Hope this helps.






          share|improve this answer























          • I already tried that but there isn't any param, it prints nothing.

            – Alena
            Nov 15 '18 at 11:28











          • Can you please explain what you are trying to do?

            – zipkundan
            Nov 15 '18 at 11:38











          • I think the question is very clear but lemme briefly explain again, there is a function which inserts data in database. After the insertion, it sends success message. And I want to customize that message without affecting parent theme. The code (I added in question) sends correct message but it always send that message, doesn't matter what happens inside function. It even works, if I put exit(); in the beginning of parent theme function. So, I want to validate current response of function, if it is success then send my custom message instead of original message. Hopefully it make sense now..

            – Alena
            Nov 15 '18 at 12:13












          • Can you post code of the function in the parent them which want to override?

            – zipkundan
            Nov 15 '18 at 12:16











          • There is more than 1500 lines of code so can't show you. However you can check my other question to understand code structure.

            – Alena
            Nov 16 '18 at 5:26










          Your Answer






          StackExchange.ifUsing("editor", function ()
          StackExchange.using("externalEditor", function ()
          StackExchange.using("snippets", function ()
          StackExchange.snippets.init();
          );
          );
          , "code-snippets");

          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "1"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53314069%2fwordpress-customize-ajax-request-response-via-filter%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          1














          Can you try this



          function custom_sync_data($params)
          //$params can be data or parameters you will have to pass
          //or you will have to check
          //based on that your setup validation or logic
          $response = array(
          'success' => true,
          'message' => 'Date is updated'
          );

          wp_send_json($response);


          You may also use var_dump($params) to check if anything is passed to function.



          Hope this helps.






          share|improve this answer























          • I already tried that but there isn't any param, it prints nothing.

            – Alena
            Nov 15 '18 at 11:28











          • Can you please explain what you are trying to do?

            – zipkundan
            Nov 15 '18 at 11:38











          • I think the question is very clear but lemme briefly explain again, there is a function which inserts data in database. After the insertion, it sends success message. And I want to customize that message without affecting parent theme. The code (I added in question) sends correct message but it always send that message, doesn't matter what happens inside function. It even works, if I put exit(); in the beginning of parent theme function. So, I want to validate current response of function, if it is success then send my custom message instead of original message. Hopefully it make sense now..

            – Alena
            Nov 15 '18 at 12:13












          • Can you post code of the function in the parent them which want to override?

            – zipkundan
            Nov 15 '18 at 12:16











          • There is more than 1500 lines of code so can't show you. However you can check my other question to understand code structure.

            – Alena
            Nov 16 '18 at 5:26















          1














          Can you try this



          function custom_sync_data($params)
          //$params can be data or parameters you will have to pass
          //or you will have to check
          //based on that your setup validation or logic
          $response = array(
          'success' => true,
          'message' => 'Date is updated'
          );

          wp_send_json($response);


          You may also use var_dump($params) to check if anything is passed to function.



          Hope this helps.






          share|improve this answer























          • I already tried that but there isn't any param, it prints nothing.

            – Alena
            Nov 15 '18 at 11:28











          • Can you please explain what you are trying to do?

            – zipkundan
            Nov 15 '18 at 11:38











          • I think the question is very clear but lemme briefly explain again, there is a function which inserts data in database. After the insertion, it sends success message. And I want to customize that message without affecting parent theme. The code (I added in question) sends correct message but it always send that message, doesn't matter what happens inside function. It even works, if I put exit(); in the beginning of parent theme function. So, I want to validate current response of function, if it is success then send my custom message instead of original message. Hopefully it make sense now..

            – Alena
            Nov 15 '18 at 12:13












          • Can you post code of the function in the parent them which want to override?

            – zipkundan
            Nov 15 '18 at 12:16











          • There is more than 1500 lines of code so can't show you. However you can check my other question to understand code structure.

            – Alena
            Nov 16 '18 at 5:26













          1












          1








          1







          Can you try this



          function custom_sync_data($params)
          //$params can be data or parameters you will have to pass
          //or you will have to check
          //based on that your setup validation or logic
          $response = array(
          'success' => true,
          'message' => 'Date is updated'
          );

          wp_send_json($response);


          You may also use var_dump($params) to check if anything is passed to function.



          Hope this helps.






          share|improve this answer













          Can you try this



          function custom_sync_data($params)
          //$params can be data or parameters you will have to pass
          //or you will have to check
          //based on that your setup validation or logic
          $response = array(
          'success' => true,
          'message' => 'Date is updated'
          );

          wp_send_json($response);


          You may also use var_dump($params) to check if anything is passed to function.



          Hope this helps.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 15 '18 at 8:58









          zipkundanzipkundan

          1,2661513




          1,2661513












          • I already tried that but there isn't any param, it prints nothing.

            – Alena
            Nov 15 '18 at 11:28











          • Can you please explain what you are trying to do?

            – zipkundan
            Nov 15 '18 at 11:38











          • I think the question is very clear but lemme briefly explain again, there is a function which inserts data in database. After the insertion, it sends success message. And I want to customize that message without affecting parent theme. The code (I added in question) sends correct message but it always send that message, doesn't matter what happens inside function. It even works, if I put exit(); in the beginning of parent theme function. So, I want to validate current response of function, if it is success then send my custom message instead of original message. Hopefully it make sense now..

            – Alena
            Nov 15 '18 at 12:13












          • Can you post code of the function in the parent them which want to override?

            – zipkundan
            Nov 15 '18 at 12:16











          • There is more than 1500 lines of code so can't show you. However you can check my other question to understand code structure.

            – Alena
            Nov 16 '18 at 5:26

















          • I already tried that but there isn't any param, it prints nothing.

            – Alena
            Nov 15 '18 at 11:28











          • Can you please explain what you are trying to do?

            – zipkundan
            Nov 15 '18 at 11:38











          • I think the question is very clear but lemme briefly explain again, there is a function which inserts data in database. After the insertion, it sends success message. And I want to customize that message without affecting parent theme. The code (I added in question) sends correct message but it always send that message, doesn't matter what happens inside function. It even works, if I put exit(); in the beginning of parent theme function. So, I want to validate current response of function, if it is success then send my custom message instead of original message. Hopefully it make sense now..

            – Alena
            Nov 15 '18 at 12:13












          • Can you post code of the function in the parent them which want to override?

            – zipkundan
            Nov 15 '18 at 12:16











          • There is more than 1500 lines of code so can't show you. However you can check my other question to understand code structure.

            – Alena
            Nov 16 '18 at 5:26
















          I already tried that but there isn't any param, it prints nothing.

          – Alena
          Nov 15 '18 at 11:28





          I already tried that but there isn't any param, it prints nothing.

          – Alena
          Nov 15 '18 at 11:28













          Can you please explain what you are trying to do?

          – zipkundan
          Nov 15 '18 at 11:38





          Can you please explain what you are trying to do?

          – zipkundan
          Nov 15 '18 at 11:38













          I think the question is very clear but lemme briefly explain again, there is a function which inserts data in database. After the insertion, it sends success message. And I want to customize that message without affecting parent theme. The code (I added in question) sends correct message but it always send that message, doesn't matter what happens inside function. It even works, if I put exit(); in the beginning of parent theme function. So, I want to validate current response of function, if it is success then send my custom message instead of original message. Hopefully it make sense now..

          – Alena
          Nov 15 '18 at 12:13






          I think the question is very clear but lemme briefly explain again, there is a function which inserts data in database. After the insertion, it sends success message. And I want to customize that message without affecting parent theme. The code (I added in question) sends correct message but it always send that message, doesn't matter what happens inside function. It even works, if I put exit(); in the beginning of parent theme function. So, I want to validate current response of function, if it is success then send my custom message instead of original message. Hopefully it make sense now..

          – Alena
          Nov 15 '18 at 12:13














          Can you post code of the function in the parent them which want to override?

          – zipkundan
          Nov 15 '18 at 12:16





          Can you post code of the function in the parent them which want to override?

          – zipkundan
          Nov 15 '18 at 12:16













          There is more than 1500 lines of code so can't show you. However you can check my other question to understand code structure.

          – Alena
          Nov 16 '18 at 5:26





          There is more than 1500 lines of code so can't show you. However you can check my other question to understand code structure.

          – Alena
          Nov 16 '18 at 5:26



















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53314069%2fwordpress-customize-ajax-request-response-via-filter%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Top Tejano songwriter Luis Silva dead of heart attack at 64

          政党

          天津地下鉄3号線