2017-08-10 9 views
0

私は私たちのデータベースからサブスクリプションを収集する関数アクションフックを持っています。私はページにサブスクリプションを表示できるようにこれを使用したいが、私はまた、新しいサブスクリプション価格を計算する別の関数でこの関数を使いたい。これは可能ですか?私はどのように私のwordpressのアクションフック関数を「通常の」関数として再利用することができます

私のコードは、多少この

add_action('wp_ajax_get_get_subs_with_type', 'get_subs_with_type'); 
add_action('wp_ajax_nopriv_get_get_subs_with_type', 'get_subs_with_type'); 

function get_subs_with_type($sub_type) { 
    $subs = //get alot of info from database...... 
    echo $subs; 
} 

のように見えます。しかし、私はまた別の関数で使用する代わりにechoreturn文で、この機能を使用したいです。

functon calc_subs(){ 
    $subs = get_subs_with_type(); 
    return $subs[1]->price + 1; 
} 

私は、アクションフックに結び付けられた機能を「通常」の機能としても使用できますか?または私は何をすべきですか?

編集:今、私も私の他の機能にget_sub_from_db()を使用することができます

add_action('wp_ajax_get_get_subs_with_type', 'get_subs_with_type'); 
add_action('wp_ajax_nopriv_get_get_subs_with_type', 'get_subs_with_type'); 

function get_subs_with_type($sub_type) { 
    $subs = get_sub_from_db() 
    echo $subs; 
} 

function get_sub_from_db() { 
    $subs = //get alot of info from database...... 
    return $subs; 
} 

:これを行うための良い方法がない場合

、私は少しハックソリューションを作りました。

functon calc_subs(){ 
    $subs = get_sub_from_db(); 
    return $subs[1]->price + 1; 
} 

あなたはどう思いますか?

答えて

0

あなたが最初のものはかなりよさそうだ呼び出す他のデータベース呼び出し&を返し、1を二つの異なる機能を作成することによって、提案されたソリューション。

あなたは、AJAXハンドラにこのすべての情報をエコーし​​た後wp_die();機能を追加することを忘れないでください。この直後に任意のAJAX呼び出しを終了し、適切な応答を返すことが必要です。

1

あなたは、例えばのような何か行うことができます。

/** 
* Returns bla bla bla 
* @return array 
*/ 
function get_subs_with_type($sub_type) { 
    $subs = //get alot of info from database...... 
    return $subs; 
} 

add_action('wp_ajax_get_get_subs_with_type', function() { 
    echo get_subs_with_type(); 
}); 

をしかしanonymous機能を使用中にremove_actionで、このアクションを削除することはできませんことを覚えておいてください。

関連する問題