以自定义的纯PHP代码实现WordPress挂钩

时间:2020-07-24 23:23:27

标签: php wordpress wordpress-theming

我正在用PHP创建一个非常庞大的系统,我想为我自己,甚至为将来的开发人员简化事情。

我正在寻求一种功能,当系统中触发某个动作时,将调用自定义功能,与WordPress add_action();所使用的想法相同。

这正是我的意思,

例如在WordPress中,如果需要执行标头部分中的代码,则使用名为wp_head的钩子,即

function add_script_to_header(){
    echo "this one will be print in the header";
}

add_action( 'wp_head', 'add_script_to_header' ); 

function another_script_on_header(){
    echo "this onather script on the header";
}

add_action( 'wp_head', 'another_script_on_header' ); 

现在,这只是一个例子,我想使用完全独立于WordPress的自定义PHP来实现相同的功能,这意味着我的代码与WordPress无关。

我尝试在PHP中使用可调用函数,但在某些时候,它会舌头扭动

在我的案例中,我有一个名为Orders的类,该类记录,付款,将订单从一种状态转移到另一种状态,还有更多其他事情,我想拥有一种通过某种动作来触发带有函数的动作的挂钩或方式被触发。

以下代码表明了我的一些试验

function next_order($orderId, $status, $autoApprove = 0){
    // this is function that is responsible for shifting orders from one status to another
    // or from one state to another
    // I would like add_action() function to be linked here, so that I can track 
    // order status with external functions
}

function add_action( $action_name, $function_name ){
    if( $action_name == "order_next" ){
        call_user_func( $function_name, $action_name);
    }

    if( $action_name == 'order_placed' ){
        // here we can place an action for that
    }

    if( $action_name == 'order_paid' ){

    }


}

 

function benson_karue( $orderId ){
    echo "This is the order id ".$orderId;
}

add_action( 'order_next', 'benson_karue' ); 

0 个答案:

没有答案