it-swarm-ja.com

Woocommerceの投稿または投稿を保存する直前にjavascript関数を実行する方法

私はこのプロジェクトに取り組んでいて、投稿を保存する直前にjqueryまたはjavascriptを実行しようとしています、私は以下を試みました:

 function do_something_with_a_post($id) {

 <script>alert('hello');</script>
 }
 add_action('pre_post_update', 'do_something_with_a_post');

しかし、それはPHPエラーが発生します...私はこれを行う方法が本当にわからない。

誰か考えがありますか?ありがとうございます。

2
MariaZ

WordPressは純粋にPHPとしてバックグラウンドでこれを実行しているので、あなたが持っているJavascriptは決して実行されません。Javascriptに関連付けるHTMLがあります。 pre_post_update hook のドキュメントを見ると、

$ wpdb-> update()の直前に呼ばれます

これは純粋にPHPで実行されます。私の言っていることがわかりやすい場合は、ここに Tracのフルコード があります。上部をスクロールすると、HTML文書が関連付けられていないことがわかります。私はあなたが必要としているのは@Brad Daltonが提案したものであり、あなた自身のスクリプトを作成しそれをあなたの投稿タイプにエンキューすることです(WooCommerceを扱うならproduct)。

たとえば、これをfunctions.phpファイルに追加できます。

/** Admin Enqueue **/
function admin_queue( $hook ) {
    global $post; 

    if ( $hook == 'post-new.php' || $hook == 'post.php' ) {
        if ( 'product' === $post->post_type ) { 
            wp_enqueue_script( 'custom-title-here', get_bloginfo( 'template_directory' ) . '/scripts/custom-script.js', 'jquery', '', true );
        }
    }
}
add_action( 'admin_enqueue_scripts', 'admin_queue' );

wp_enqueue_script、View Codex の使い方の詳細については。何をしようとしているかに応じて、フォームを送信してJSを実行できます。

jQuery( document ).ready( function( $ ) {
    $( '#post' ).submit( function( e ) {
        alert( 'Stopping Form From Submitting.' );
        return false;
    } );
} );
3
Howdy_McGee