【问题标题】:Run a function inside a worpress shortcode php function在 wordpress 简码 php 函数中运行函数
【发布时间】:2021-08-04 06:53:38
【问题描述】:

我正在尝试创建一个短代码以连接到 API,但该短代码存在问题。我知道这是因为函数位于函数内部,但我不知道如何修复。我尝试了一些不起作用的方法。

// 添加简码

function api_test() {

function execute_request( $args ) {
    global $base_url;
    $target_url = add_query_arg( $args, $base_url );
    $data       = wp_remote_get( $target_url );
    echo '<pre><code>';
    print_r( $data['body'] );
    echo '<code></pre>';
}   


if ( ! current_user_can( 'manage_options' ) ) die();

// API variables, please override
$base_url    = 'https://website.com';
$email       = 'email@gmail.com';
$product_id  = '1146';
$license_key = '0g96b29x5v27fmfnmbr4hxaflky';
$instance    = '';

$request = ( isset( $_GET['request'] ) ) ? $_GET['request'] : '';

$links = array(
'check'        => 'Check request',
'activation'   => 'Activation request',
'deactivation' => 'Deactivation',
'version_check'      => 'Version Check',
);

foreach ( $links as $key => $value ) {
echo '<a href="' . add_query_arg( 'request', $key ) . '">' . $value . '</a> | ';
}

// Valid check request
if ( $request == 'check' ) {
$args = array(
    'wc-api'     => 'serial-numbers-api',
    'request'    => 'check',
    'email'      => $email,
    'serial_key' => $license_key,
    'product_id' => $product_id
);
echo '<br>';
echo '<br>';
echo '<b>Valid check request:</b><br />';
//execute_request( $args );
$this->execute_request($args);
}

}

add_shortcode( 'api-test', 'api_test' );

【问题讨论】:

    标签: php wordpress function shortcode redeclare


    【解决方案1】:

    只需在短代码之外创建execute_request()

    function execute_request( $args ) {
        global $base_url;
        $target_url = add_query_arg( $args, $base_url );
        $data       = wp_remote_get( $target_url );
        echo '<pre><code>';
        print_r( $data['body'] );
        echo '<code></pre>';
    } 
    
    function api_test() {
    
        if ( ! current_user_can( 'manage_options' ) ) die();
    
        // API variables, please override
        $base_url    = 'https://website.com';
        $email       = 'email@gmail.com';
        $product_id  = '1146';
        $license_key = '0g96b29x5v27fmfnmbr4hxaflky';
        $instance    = '';
    
        $request = ( isset( $_GET['request'] ) ) ? $_GET['request'] : '';
    
        $links = array(
            'check'         => 'Check request',
            'activation'    => 'Activation request',
            'deactivation'  => 'Deactivation',
            'version_check' => 'Version Check',
        );
    
        foreach ( $links as $key => $value ) {
            echo '<a href="' . add_query_arg( 'request', $key ) . '">' . $value . '</a> | ';
        }
    
        // Valid check request
        if ( $request == 'check' ) {
    
            $args = array(
                'wc-api'     => 'serial-numbers-api',
                'request'    => 'check',
                'email'      => $email,
                'serial_key' => $license_key,
                'product_id' => $product_id
            );
    
            echo '<br>';
            echo '<br>';
            echo '<b>Valid check request:</b><br />';
            //execute_request( $args );
            execute_request($args);
        }
    
    }
    
    add_shortcode( 'api-test', 'api_test' );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 2011-11-25
      • 1970-01-01
      • 2011-04-02
      • 2018-08-31
      相关资源
      最近更新 更多