将数据从一个WP实例发送到另一个WP实例并在那里进行处理

时间:2018-06-25 作者:Julian Stark

我正在寻找一种将数据从一个WordPress发送到另一个WordPress的好方法。

设置:WP1:前端,用于提交数据的表单。WP2:后端,接收数据并对其进行处理。

因此,在WP1中,用户只需使用表单来提交数据。该数据应传输至WP2。在WP2中,正在处理数据(创建自定义帖子、添加帖子元、创建用户…)。

如何将所有数据从WP1提交到WP2?

我考虑使用GET请求将表单数据从WP1“转发”到WP2。

另一种方法是使用REST API传输数据,但我很难做到这一点,因为处理应该在WP2而不是WP1进行。

您能帮助我简单地发送表单数据并在WP2触发处理的最佳方式是什么吗?

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

我用mmm的提示解决了这个问题,并创建了一个简单的自定义REST端点。

WP1(前端,发送数据):

function send_form_data_to_backend($form_values) {

    // add secret-key
    $form_values[\'secret_key\'] = "abcde123";

    $url = \'http://backend.example.com/wp-json/example/v1/save/\';
    $response = wp_safe_remote_post( $url, array(
        \'method\' => \'POST\',
        \'timeout\' => 15,
        \'redirection\' => 5,
        \'blocking\' => true,
        \'headers\' => array(),
        \'body\' => $form_values,
        \'cookies\' => array()
        )
    );

    if ( is_wp_error( $response ) ) {
       $error_message = $response->get_error_message();
       echo "Something went wrong: $error_message";
    } else {
       echo \'Response:<pre>\';
       print_r( $response );
       echo \'</pre>\';
    }
}
WP2(后端,接收数据):

add_action( \'rest_api_init\', \'post_request\' );

function post_request() {

    register_rest_route( \'example/v1\', \'/save/\', array(
                \'methods\' => \'POST\',
                \'callback\' => \'rest_function\')
    );
}


/*
 * REST Function
 */
function rest_function( $data ) {

    if ( $data[\'secret_key\'] == "abcde123" ) {

        $msg = example_main_form_processing( $data );

        return $msg;

    } else {
        return "Wrong Key.";
    }

}

结束

相关推荐

WordPress MultiSite-开发/试运行/生产环境的理想设置是什么?

Intro: 我正在初步规划WordPress多站点开发环境,我所在的机构将在该环境中构建我们客户的网站。我们目前正在构建一个“香草”主题,并计划将其用作基础主题。该计划包括为每个客户端创建一个新的子主题,并使用该子主题创建客户端主题,保持普通主题不受自定义代码和覆盖的影响。我们的客户来自同一行业,因此,他们在其网站上共享相同的要求和功能。使用多站点设置有助于将所有内容保持在一个位置,并根据网站的设计进行区分。The question: 我不能清楚地想到的是一个将所有内容组织到版本控制和跨不同环境的解决方