无插件错误的WordPress短信API集成

时间:2019-10-19 作者:madurange

我已经为WordPress创建了一个代码来集成我的自定义SMS API。当我在URL栏上键入API URL时,它运行良好;但当它出现在代码中时,API URL将不会调用。因此,当客户下订单时,此代码不起作用:

add_action( \'woocommerce_order_status_processing\',\'mysite_woocommerce_order_status_processing\' );
function mysite_woocommerce_order_status_processing( $order_id ) {

    $billing_phone="0729424391";
    $message="yep";

    $url="http://realcam.club:9710/http/send-message?username=admin&password=admin&to=".$billing_phone."&messagetype=sms.automatic&message=".$message."\'";

  $response = file_get_contents( $url );

  //print_r($response);

}

1 个回复
SO网友:Cas Dekkers

我建议使用WordPress为此提供的HTTP API。看看GETting data from an API 部分获取有关如何从URL获取数据的更多详细信息。

要开始,请尝试:

导航到您的wp-config.php 文件,并设置WP_DEBUG and WP_DEBUG_LOG constants 为true(请勿在站点的生产服务器上执行此操作)。

接下来,用以下代码替换代码:

function mysite_woocommerce_order_status_processing( $order_id ) {

    $billing_phone = "0729424391"; // TODO Sanitize this input
    $message = "yep"; // TODO Sanitize this input
    $url = sprintf( "http://realcam.club:9710/http/send-message?username=admin&password=admin&to=%1$s&messagetype=sms.automatic&message=%2$s", $billing_phone, $message );

    try {

        // GET the response.
        $response = wp_remote_get( esc_url( $url ) );

        // If the response is a WP_Error object, jump to the catch clause.
        if ( is_wp_error( $response ) ) {
            throw new UnexpectedValueException( $response->get_error_message() );
        }

        // Log the successful response to the debug log.
        error_log( print_r( $response, true ) );

    } catch ( UnexpectedValueException $e ) {

        // Log the error to the debug log.
        error_log( $e );

    }


}
add_action( "woocommerce_order_status_processing", "mysite_woocommerce_order_status_processing" );
然后检查debug.log 中的文件wp-content WordPress安装目录。

此代码将记录响应,如果请求失败,则会将错误消息记录到该文件中。我认为这很简单,你可以理解,但如果你有任何问题或有任何问题,请告诉我。

相关推荐

pagination in WP rest api

我们已经制作了一个自定义API来按降序获取所有帖子,我们希望在该API中添加分页。我已经阅读了其他问题和答案,但没有领会其中的意思。谁能用一个简单的分页代码向我解释一下,这样我就能理解它是如何工作的?以下是我迄今为止所做的代码:define(\'API_ENDPOINT_VERSION\',1); //flush the rewrite rules on plugin activation function apiendpoint_activate() {&#x