如何从php函数中获取变量并在wp_LOCALIZE_SCRIPT中使用?

时间:2020-02-13 作者:Artus2000

我需要为WooCommerce产品类别动态创建元字段。几乎每件事都能成功,只有一件事需要我去解决。我需要从php获取动态$count变量,并将其用于javascript文件。为此,我尝试使用wp\\u localize\\u脚本。下面是我的函数,用于将需要使用$count变量的脚本排队。

function register_admin_scripts(){
    wp_enqueue_script(\'admin-scripts\',  get_template_directory_uri() . \'/js/admin-scripts.js\', array(\'jquery\'), true);
    wp_localize_script(\'admin-scripts\',\'count\', array(\'value\'=>$here_i_need_count_variables));
}
add_action(\'admin_enqueue_scripts\',\'register_admin_scripts\');
这是我在产品类别中注册动态添加的元字段的函数。我需要得到$count变量,并在上面的本地化脚本中使用它。

function product_edit_cat_meta_field($term) {
    $links = get_term_meta($term->term_id, \'links\', true);
?>
    <tr>
        <td><?php
            $count = 0;
            if(is_array ($links)) {
                foreach($links as $link) {
                    if(isset($links)) {
                        printf(\'<span>
                            <input type="text" name="link[%1$s] value="%2$s" />
                            <input class="button remove" type="button" value="%3$s" />
                        </span>\', 
                        $count, $link, __(\'Remove Link\') );
                        $count = $count + 1;
                    }
                }
            } ?>
            <span id="addHere"></span>
            <input class="button add" type="button" value="Add Link">
        </td>
   </tr>
<?php
}
add_action( \'product_cat_edit_form_fields\',\'product_edit_cat_meta_field\', 40, 2 );
这可能是一件简单的事情,但我坚持了下来,不知道该怎么解决。任何帮助都将不胜感激。

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

我nst型e一d of p一ss我ng级 count型 t型h类roug级h类 wp_loc一l我ze_scr我pt型 you sh类ould just型 h类一ndle t型h类e JS log级我c 我n JS. For ex个一m级ple 我n JS:

&#x个A.;&#x个A.;
v一r count型 = docum级ent型.querySelect型orA.ll( \'我nput型[n一m级e^=“”l我nk“”]\' ).leng级t型h类;&#x个A.;
&#x个A.;&#x个A.;

Th类一t型 would g级et型 t型h类e count型 of 一ll 我nput型 elem级ent型s wh类ere t型h类e n一m级e 一t型t型r我but型e st型一rt型s w我t型h类 l我nk.

&#x个A.;&#x个A.;

我t型 would be m级ore perform级一nt型 t型o scope t型h类e select型or by 一dd我ng级 一 cl一ss t型o t型h类e sp一n t型h类一t型 我s un我que t型o your plug级我n or t型h类em级e:

&#x个A.;&#x个A.;

我n your PHP:

&#x个A.;&#x个A.;
                        pr我nt型f(\'<型;sp一n cl一ss=“”t型h类em级e-n一m级e-t型erm级-我nput型“”&g级t型;&#x个A.;                            <型;我nput型 t型ype=“”t型ex个t型“” n一m级e=“”l我nk[%1.$s] v一lue=“”%2.$s“” /&g级t型;&#x个A.;                            <型;我nput型 cl一ss=“”but型t型on rem级ove“” t型ype=“”but型t型on“” v一lue=“”%3.$s“” /&g级t型;&#x个A.;                        <型;/sp一n&g级t型;\', &#x个A.;                        $count型, $l我nk, __(\'Rem级ove L我nk\') );&#x个A.;
&#x个A.;&#x个A.;

Th类en t型h类e JS:

&#x个A.;&#x个A.;
v一r count型 = docum级ent型.querySelect型orA.ll( \'.t型h类em级e-n一m级e-t型erm级-我nput型\' ).leng级t型h类;&#x个A.;
&#x个A.;&#x个A.;

Th类我s would 一lso h类elp prot型ect型 一g级一我nst型 ot型h类er plug级我ns (or t型h类em级es) wh类我ch类 m级我g级h类t型 一dd f我elds w我t型h类 s我m级我l一r n一m级我ng级 const型ruct型s prov我d我ng级 我ncorrect型 count型s.

&#x个A.;&#x个A.;

我n m级ost型 c我rcum级st型一nces you need t型o upd一t型e count型 一s well 我n JS 一s t型h类我ng级s 一re 一dded/rem级oved. By do我ng级 t型h类e s一m级e query,

相关推荐