如何在保存一篇WooCommerce帖子或一篇帖子之前执行一个javascript函数?

时间:2015-02-03 作者:MariaZ

我正在从事这个项目,在保存帖子之前,我正在尝试执行jquery或javascript,我尝试了以下方法:

 function do_something_with_a_post($id) {

 <script>alert(\'hello\');</script>
 }
 add_action(\'pre_post_update\', \'do_something_with_a_post\');
但它给出了一个php错误。。。我真的不知道该怎么做。

有人有主意吗?谢谢

1 个回复
最合适的回答,由SO网友:Howdy_McGee 整理而成

你的Javascript永远不会运行,因为WordPress在后台以纯PHP的形式运行它,有HTML与你的Javascript相关联。如果我们查看pre_post_update hook 它指出:

在$wpdb->update()之前调用

它完全在PHP中运行。如果更容易理解我的意思,下面是full code on Trac, 如果您滚动顶部,您会注意到没有与之关联的HTML文档。我相信你需要的是@BradDalton的建议,创建你自己的脚本并将其列在你的帖子类型中(如果与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;
    } );
} );

结束

相关推荐