为了账号安全,请及时绑定邮箱和手机立即绑定

Cron 作业 - 在数据库之间移动数据

Cron 作业 - 在数据库之间移动数据

PHP
慕标琳琳 2022-12-03 10:46:39
我在 Wordpress 中有一个会员网站,它是使用名为“会员”的自定义帖子类型构建的。出于多种原因,我们使用 cron 作业来运行这些 CPT 字段并使用来自单独数据库的数据填充这些字段(公司使用标准 WP 数据库来存储数据是不可行的。数据库在 MS Access 中启动,导出到我们的 WP 数据库中的一个单独的表,然后 cron 作业从该数据库中提取数据并将其添加到 CPT 数据库中。在 cron 作业文档中,我们有这样的行:update_field( 'memberimage', $members->webpic, $post_id );update_field( 'description', $members->description, $post_id );update_field( 'phone_number', $members->telno, $post_id );update_field( 'email_address', $members->email, $post_id );update_field( 'website_address', $members->web, $post_id );这显然从数据库中的字段中获取数据并将其添加到我们在 CPT 等中创建的字段中。对于每个成员,在后端,我有一个使用高级自定义字段创建的下拉列表(字段名称:gold_or_silver_member带有黄金或白银的选择选项),将它们标记为白银会员的黄金。银牌是默认的,如果它们是金牌,则各种有条件的事情恰好会在其目录页面上显示更多功能。在我们从中提取的数据库中,在数据库级别调用负责此操作的列,webtier数据库用户将数字 2 添加到字段中,如果成员是银,则将数字 3 添加到字段中,如果成员是金。我正在尝试以上面的方式从数据库中获取这个数字,并将其输出以在 ACF 中为每个成员返回黄金或白银。我们已经有了这一行:update_field( 'gold_or_silver_member', 'Silver', $post_id );我认为,默认情况下所有成员都是银牌,所以我认为逻辑只需要说:如果数据库字段中的数字,webtier 是 3 然后将 ACF 字段更改为 gold反正我觉得...老实说,我有点卡住了,我是从其他人那里得到的,由于目前的情况,我无法联系到他,所以我的任务是解决这个问题……任何人都可以帮助我并给我建议吗?完整的 cronjob.php 文件是:<?phpinclude('wp-config.php');global $wpdb;$taxonomy="business_sector";$members = $wpdb->get_results("SELECT dep.*  FROM directory_enteries_partnership as dep where status=0 ");$i=1;foreach($members as $members){    //echo $members->webcat;    //echo "<br>";    $category = $wpdb->get_row("SELECT *  FROM directory_categories_partnership as dcp where maincategory=$members->webcat");    //echo "$i";    //echo "<br>";    //$i++;    //echo "<pre>";    //print_r($category);    $term = get_term_by('name',$category->description,$taxonomy);//  echo "<pre>";    //print_r($term);//  print_r($members);//  //die;    $address =  $members->address1.' '.$members->address2.' '.$members->town.' '.$members->postcode;$my_post = array(     'post_title' => $members->orgname,     'post_type'  => 'members',     'post_status' => 'publish',     'post_author' => 1,     'post_category' => array( $term->term_id ),  );非常感谢任何帮助或建议!!感谢您的关注。
查看完整描述

1 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

替换这一行update_field( 'gold_or_silver_member', 'Silver', $post_id );


使用此代码:


$webtier = $members->webtier;

$membership = 'Silver';

if ($webtier == 3) $membership = 'Gold';

update_field( 'gold_or_silver_member', $membership, $post_id );


查看完整回答
反对 回复 2022-12-03
  • 1 回答
  • 0 关注
  • 71 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信